• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

関数リファレンス/add role

提供: WordPress Codex 日本語版
移動先: 案内検索

この項目「関数リファレンス/add role」は、翻訳チェック待ちの項目です。加筆、訂正などを通して、Codex ドキュメンテーションにご協力下さい。

WordPress に新しい権限グループを追加します。

注意: この設定はデータベース(wp_options テーブルの wp_user_roles フィールド)に保存されるので、テーマやプラグインの有効化の時に実行するのが良いでしょう。

使い方

<?php add_role( $role, $display_name, $capabilities ); ?>

パラメータ

$role
文字列) (必須) 権限グループ名
初期値: なし
$display_name
文字列) (必須) 権限グループ表示名
初期値: なし
$capabilities
配列) (必須) 権限の配列(使用可能な権限のリストは ユーザーの種類と権限 を参照)
初期値: なし

戻り値

(mixed) 
成功時は WP_Role オブジェクトを返し、その権限グループがすでに存在する場合は null を返します。

新しく "Basic Contributor" 権限グループを作成します。

$result = add_role(
    'basic_contributor',
    __( 'Basic Contributor' ),
    array(
        'read'         => true,  // true はこの権限を付与します。
        'edit_posts'   => true,
        'delete_posts' => false, // 明示的に禁止するには false を指定します。
    )
);
if ( null !== $result ) {
    echo '新しい権限グループを作成しました!';
}
else {
    echo 'すでに basic_contributor 権限グループは存在します。';
}

プラグインを有効化した際に新しい権限グループを作成します。register_activation_hook() を見てください。

function add_roles_on_plugin_activation() {
    add_role( 'custom_role', 'Custom Subscriber', array( 'read' => true, 'level_0' => true ) );
}
register_activation_hook( __FILE__, 'add_roles_on_plugin_activation' );

参考

呼び出すタイミング

権限グループを追加または変更する以前にグローバル $wp_roles が利用可能であるようにしてください。ベストなやり方は、当たり前ですがプラグインやテーマの有効化フックを使って権限グループを変更します(一度だけ行いたい訳ですから!)。

mu-plugins が読み込まれるのは早すぎるので、mu-plugin のコンテキスト内で行いたい場合は、アクションフック('init' など)の中で add_role() を呼び出しましょう。

既存のロールの削除

カスタム権限グループの定義中に add_role() を使って権限を追加する場合、権限の配列を変更して add_role() を再実行しても、その権限グループは新しい権限リストに決して更新されません。 add_role() 関数は権限グループがデータベースにあれば処理をスキップします。

この状況を回避するには add_role() を呼び出す前に、追加しようとしている権限グループを対象に remove_role() を呼び出します。

これは開発作業のみを対象としたものです。権限リストが決まれば remove_role() コードは不要です。 残しておいても実際のところ何も危険はありませんが。

変更履歴

バージョン 2.0.0 にて導入されました。

ソースファイル

add_role()wp-includes/capabilities.php にあります。

権限グループと権限:



関数リファレンステンプレートタグ目次もご覧ください。


最新英語版: WordPress Codex » Function Reference/add_role最新版との差分