web-dev-qa-db-ja.com

ロール(編集者など)以上に特権を付与する

私のワードプレスのテーマはカスタム投稿タイプがあります。この投稿タイプの使用を許可されるのは編集者(およびそれ以上)のみです。

私はこれをやった:

function add_capability($role,$cap) {
    $role_obj = get_role($role); // get the the role object
    $role_obj -> add_cap($cap); // add $cap capability to this role object
}

function set_cpt() {
    add_capability('editor', 'edit_cpt');
    add_capability('editor', 'read_cpt');
    add_capability('editor', 'delete_cpt');
    add_capability('editor', 'edit_cpt');
    add_capability('editor', 'edit_cpt');
    add_capability('editor', 'publish_cpt');
    add_capability('editor', 'read_cpt');
}
add_action('init', 'set_cpt');

(私は思う)Wordpress 3.1ではこれで十分だった - すべての編集者とそれ以降はポストタイプを使う権利を持っていた。

、Wordpress 3.2では 編集者だけがポストタイプを使用する権利を持ちます。

ロールX以上に特権を付与する方法はありますか?それとも、すべてのロールに言及しなければなりませんか?

ありがとうございました!

[編集]

実際に私はこれがかつてはうまくいかなかったことを知りました。しかし、それをする別の方法はありますか?

1
Marcel

Members プラグインを使えば、好きなように設定できます。カスタムロール(あなたのedit_cptなど)を追加する可能性もあります。

多くのプラグインもそのように動作します。

<?php if ( current_user_can('manage_options') ) { do_something(); } ?>

3
user2015