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

関数リファレンス/add cap

提供: WordPress Codex 日本語版
< 関数リファレンス
2018年8月23日 (木) 14:04時点におけるNorando (トーク | 投稿記録)による版 (一部翻訳)

移動先: 案内検索

説明

権限グループまたは特定のユーザーに権限を追加します。 権限グループまたはユーザーの権限変更は永続的なものです。追加された権限は、明示的に取り消されるまで有効です。

注意: この設定はデータベースに保存されます(in table wp_options, field wp_user_roles)。そのため、テーマ/プラグインを有効化した時に実行したほうがいいかもしれません。

使い方

<?php 
 global $wp_roles; // global class wp-includes/capabilities.php
 $wp_roles->add_cap( $role, $cap ); 
?> 
or
<?php
 $role = get_role( 'author' );
 $role->add_cap( $cap );
?>

パラメータ

role (just with WP_Roles)
文字列) (必須) 権限グループ名
初期値: なし
cap
文字列) (必須) 権限名
初期値: なし
grant
真偽値) (オプション) 権限グループがこの権限を実行できるかどうか
初期値: true

戻り値

void 
この関数は値を返しません。

用例

function add_theme_caps() {
    // 投稿者の権限グループを取得
    $role = get_role( 'author' );

    // これは、クラスインスタンスにアクセスするためにのみ機能します。
    // 現在のテーマにおいてのみ、投稿者は他の人の投稿を編集することができます。
    $role->add_cap( 'edit_others_posts' ); 
}
add_action( 'admin_init', 'add_theme_caps');

注意: この設定はデータベースに保存されます(in table wp_options, field wp_user_roles)。そのため、テーマ/プラグインを有効化した時に実行したほうがいいかもしれません。

function add_theme_caps(){
  global $pagenow;

  // 投稿者の権限グループを取得
  $role = get_role( 'author' );

  if ( 'themes.php' == $pagenow && isset( $_GET['activated'] ) ){ // Test if theme is activated
    // テーマが有効化された

    // これは、クラスインスタンスにアクセスするためにのみ機能します。
    // 現在のテーマにおいてのみ、投稿者は他の人の投稿を編集することができます。
    $role->add_cap( 'edit_others_posts' ); 
  }
  else {
    // テーマが無効化された
    // テーマが無効化された時、権限を削除する
    $role->remove_cap( 'edit_others_posts' ); 
  }
}
add_action( 'load-themes.php', 'add_theme_caps' );

特定のユーザーに権限を追加する :

$user = new WP_User( $user_id );
$user->add_cap( 'can_edit_posts' );

参考

There is no public function called add_cap() - just the class methods inside WP_Roles, WP_Role, WP_User that can add capabilities.

If you want to add a new role with capabilities, just add them when you add the role using add_role();.

変更履歴

ソースファイル

add_capwp-includes/class-wp-role.php, wp-includes/class-wp-roles.php, wp-includes/class-wp-user.php にあります。


関連資料

権限グループと権限:


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


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