предоставьте привилегии для ролей (например, редакторов) и выше


Моя тема wordpress имеет пользовательский тип записи. Только редакторам (и выше) должно быть разрешено использовать этот тип сообщений.

Я сделал это с помощью:

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 и выше или у меня есть упомянуть каждую роль?

Спасибо вам!

[редактировать]

На самом деле я обнаружил, что раньше это никогда не работало. Но есть ли другой способ сделать это?

Author: Marcel, 2011-07-24

1 answers

Если вы используете плагин для участников , вы можете настроить его так, как хотите. В нем также есть возможность добавлять пользовательские роли (ваши edit_cpt и так далее)

Также многие плагины также работают таким образом:

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

 4
Author: Bainternet, 2011-11-14 12:39:17