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

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

「関数リファレンス/add role」の版間の差分

提供: WordPress Codex 日本語版
移動先: 案内検索
(関連項目)
(参考)
68行目: 68行目:
 
<tt>mu-plugins</tt> will load too early, so use an action hook (like <tt>'init'</tt>) to wrap your <code>add_role()</code> call if you're doing this in the context of an mu-plugin.
 
<tt>mu-plugins</tt> will load too early, so use an action hook (like <tt>'init'</tt>) to wrap your <code>add_role()</code> call if you're doing this in the context of an mu-plugin.
  
===Delete existing role===
+
===既存のロールの削除===
  
 
If you are defining a custom role, and adding capabilities to the role using <code>add_role()</code>, be aware that modifying the capabilities array and re-executing <code>add_role()</code> ''will not necessarily update the role with the new capabilities list.'' The <code>add_role()</code> function short-circuits if the role already exists in the database.
 
If you are defining a custom role, and adding capabilities to the role using <code>add_role()</code>, be aware that modifying the capabilities array and re-executing <code>add_role()</code> ''will not necessarily update the role with the new capabilities list.'' The <code>add_role()</code> function short-circuits if the role already exists in the database.
  
The workaround in this case is to precede your <code>add_role()</code> call with a <code>[[Function_Reference/remove_role|remove_role()]]</code> call that targets the role you are adding.
+
The workaround in this case is to precede your <code>add_role()</code> call with a <code>[[関数リファレンス/remove_role|remove_role()]]</code> call that targets the role you are adding.
  
 
'''This is for development only. Once you have nailed down your list of capabilities, there's no need to keep the <code>remove_role()</code> code''', though there is, in fact, no harm in doing so.
 
'''This is for development only. Once you have nailed down your list of capabilities, there's no need to keep the <code>remove_role()</code> code''', though there is, in fact, no harm in doing so.
  
 
<div id="Change Log">
 
<div id="Change Log">
 +
 
== 変更履歴 ==
 
== 変更履歴 ==
 
</div>
 
</div>

2015年6月3日 (水) 08:26時点における版

このページ「関数リファレンス/add role」は参考節が未翻訳です。和訳や日本語情報を加筆してくださる協力者を求めています

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' );

参考

When to cal

Make sure that the global $wp_roles is available before attempting to add or modify a role. The best practice of course is to use your plugin- or theme-activation hook to make changes to roles (since you only want to do it once!).

mu-plugins will load too early, so use an action hook (like 'init') to wrap your add_role() call if you're doing this in the context of an mu-plugin.

既存のロールの削除

If you are defining a custom role, and adding capabilities to the role using add_role(), be aware that modifying the capabilities array and re-executing add_role() will not necessarily update the role with the new capabilities list. The add_role() function short-circuits if the role already exists in the database.

The workaround in this case is to precede your add_role() call with a remove_role() call that targets the role you are adding.

This is for development only. Once you have nailed down your list of capabilities, there's no need to keep the remove_role() code, though there is, in fact, no harm in doing so.

変更履歴

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

ソースファイル

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

権限グループと権限:



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


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