WordPress 独自テーマの有効化の際に権限グループを追加する方法

独自テーマの機能として権限グループの追加機能を実装する場合、テーマを有効化する際のみに権限追加処理を実行させる必要があるため独自にフックポイントを追加して権限グループを追加する方法を書いていきます。

テーマ有効化の際に実行されるフックポイント追加

既存のアクションフックポイント init に管理画面のテーマページ且つアクティベートを条件に実行されるフックポイントを追加します。

/**
 * テーマ有効化の際に実行されるフックポイント追加
 */
function ag_theme_activate()
{
    global $pagenow;

    if( is_admin() && $pagenow == "themes.php" && isset($_GET["activated"]) ) {
        do_action("ag_theme_activate");
    }
}
add_action("init", "ag_theme_activate");

権限グループ追加

上記で追加したアクションフックポイントで実行する権限グループ追加用関数を追加します。

/**
 * 権限グループ追加
 */
function ag_init_role()
{
    /* 権限追加実行 */
    $result = add_role( 'analyzegear_member', 'Analyzegear Member', array( 'read' => true, 'level_0' => true ) );
    if (is_null($result) ) {
        //echo 'すでに analyzegear_member 権限グループは存在します。';        
    }
    else {
        //echo '新しい権限グループを作成しました';
    }
}
add_action("ag_theme_activate", "ag_init_role");

動作環境情報

エックスサーバー(x10)
PHP 7.3.14
MySQL 5.7
WordPress 5.4

コメント

タイトルとURLをコピーしました