当サイト、Codex 日本語版は今後積極的な更新は行わない予定です。後継となる新ユーザーマニュアルは、https://ja.wordpress.org/support/ にあります。
万が一、当サイトで重大な問題を発見した際などは、フォーラムWordSlack #docs チャンネルでお知らせください。</p>

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

提供: WordPress Codex 日本語版
移動先: 案内検索
(参考節以外を和訳)
(残りを和訳。)
 
(他の1人の利用者による、間の2版が非表示)
1行目: 1行目:
{{NeedTrans|[[#Notes|参考]]節が}}
+
{{CheckTrans}}
  
 
<div id="Description">
 
<div id="Description">
5行目: 5行目:
 
</div>
 
</div>
  
WordPressに新しい[[ユーザーの種類と権限#Roles|権限グループ]]を追加します。
+
WordPress に新しい[[ユーザーの種類と権限#Roles|権限グループ]]を追加します。
  
'''注意: この設定はデータベース(wp_optionsテーブルのwp_user_rolesフィールド)に保存されるので、テーマやプラグインの有効化の時に実行するのが良いでしょう。'''
+
'''注意: この設定はデータベース(wp_options テーブルの wp_user_roles フィールド)に保存されるので、テーマやプラグインの有効化の時に実行するのが良いでしょう。'''
  
 
<div id="Usage">
 
<div id="Usage">
21行目: 21行目:
 
{{Parameter|$role|文字列|権限グループ名|必須}}
 
{{Parameter|$role|文字列|権限グループ名|必須}}
 
{{Parameter|$display_name|文字列|権限グループ表示名|必須}}
 
{{Parameter|$display_name|文字列|権限グループ表示名|必須}}
{{Parameter|$capabilities|配列|権限の配列(使用可能な機能のリストは[[ユーザーの種類と権限|ユーザーの種類と権限]]を参照}}
+
{{Parameter|$capabilities|配列|権限の配列(使用可能な権限のリストは [[ユーザーの種類と権限|ユーザーの種類と権限]] を参照)}}
  
<div id="Return Values">
+
<div id="Returns">
 
== 戻り値 ==
 
== 戻り値 ==
 
</div>
 
</div>
  
; (mixed) : 成功時はWP_Roleオブジェクトと返し、その権限グループがすでに存在する場合Nullを返します。
+
; (mixed) : 成功時は WP_Role オブジェクトを返し、その権限グループがすでに存在する場合は null を返します。
  
 
<div id="Examples">
 
<div id="Examples">
33行目: 33行目:
 
</div>
 
</div>
  
新しく"Basic Contributor"権限グループを作成します。
+
新しく "Basic Contributor" 権限グループを作成します。
  
 
  $result = add_role(
 
  $result = add_role(
39行目: 39行目:
 
     __( 'Basic Contributor' ),
 
     __( 'Basic Contributor' ),
 
     array(
 
     array(
         'read'        => true,  // trueはこの機能を使用可にします。
+
         'read'        => true,  // true はこの権限を付与します。
 
         'edit_posts'  => true,
 
         'edit_posts'  => true,
         'delete_posts' => false, // 明示的に使用しないとする場合はfalseを使用します。
+
         'delete_posts' => false, // 明示的に禁止するには false を指定します。
 
     )
 
     )
 
  );
 
  );
 
  if ( null !== $result ) {
 
  if ( null !== $result ) {
     echo '新しい権限グループを作成しました!';
+
     echo '新しい権限グループを作成しました!';
 
  }
 
  }
 
  else {
 
  else {
     echo 'すでに"basic_contributor"権限グループは存在します。';
+
     echo 'すでに basic_contributor 権限グループは存在します。';
 
  }
 
  }
  
プラグインを有効化した際に新しい権限グループを作成します。参照:[[関数リファレンス/register_activation_hook|register_activation_hook]]
+
プラグインを有効化した際に新しい権限グループを作成します。[[関数リファレンス/register_activation_hook|register_activation_hook()]] を見てください。
  
    function add_roles_on_plugin_activation() {
+
function add_roles_on_plugin_activation() {
        add_role( 'custom_role', 'Custom Subscriber', array( 'read' => true, 'level_0' => true ) );
+
    add_role( 'custom_role', 'Custom Subscriber', array( 'read' => true, 'level_0' => true ) );
    }
+
}
    register_activation_hook( __FILE__, 'add_roles_on_plugin_activation' );
+
register_activation_hook( __FILE__, 'add_roles_on_plugin_activation' );
  
 
<div id="Notes">
 
<div id="Notes">
62行目: 62行目:
 
</div>
 
</div>
  
===When to cal===
+
<div id="When_to_call">
 +
=== 呼び出すタイミング ===
 +
</div>
  
Make sure that the global <tt>$wp_roles</tt> 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!).
+
権限グループを追加または変更する以前にグローバル <tt>$wp_roles</tt> が利用可能であるようにしてください。ベストなやり方は、当たり前ですがプラグインやテーマの有効化フックを使って権限グループを変更します(一度だけ行いたい訳ですから!)。
  
<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> が読み込まれるのは早すぎるので、mu-plugin のコンテキスト内で行いたい場合は、アクションフック(<tt>'init'</tt> など)の中で <code>add_role()</code> を呼び出しましょう。
  
===Delete existing role===
+
<div id="Delete_existing_role">
 +
=== 既存のロールの削除 ===
 +
</div>
  
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.
+
カスタム権限グループの定義中に <code>add_role()</code> を使って権限を追加する場合、権限の配列を変更して <code>add_role()</code> を再実行しても、''その権限グループは新しい権限リストに決して更新されません。''
 +
<code>add_role()</code> 関数は権限グループがデータベースにあれば処理をスキップします。
  
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.
+
この状況を回避するには <code>add_role()</code> を呼び出す前に、追加しようとしている権限グループを対象に <code>[[関数リファレンス/remove_role|remove_role()]]</code> を呼び出します。
  
'''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.
+
'''これは開発作業のみを対象としたものです。権限リストが決まれば <code>remove_role()</code> コードは不要です。'''
 +
残しておいても実際のところ何も危険はありませんが。
  
<div id="Change Log">
+
<div id="Changelog">
 
== 変更履歴 ==
 
== 変更履歴 ==
 
</div>
 
</div>
 +
 
バージョン [[Version 2.0|2.0.0]] にて導入されました。
 
バージョン [[Version 2.0|2.0.0]] にて導入されました。
  
<div id="Source File">
+
<div id="Source_Code">
 
== ソースファイル ==
 
== ソースファイル ==
 
</div>
 
</div>
95行目: 102行目:
 
{{Tag Footer}}
 
{{Tag Footer}}
  
[[Category:Functions]]
+
{{原文|Function Reference/add_role|149926}} <!-- 08:58, 6 March 2015 Shizumi -->
  
{{原文|Function_Reference/add_role|144218}}
+
{{DEFAULTSORT:Add_role}}
 +
[[Category:関数]]
  
 
[[en:Function_Reference/add_role]]
 
[[en:Function_Reference/add_role]]

2017年3月2日 (木) 16:14時点における最新版

この項目「関数リファレンス/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最新版との差分