2016-02-01 3 views
1

Я только что создал пользовательскую роль «Lister», используя следующий код в моем файле functions.php. У меня есть новая роль, работающая в бэкэнд и создающая пользователя для тестирования. После входа в систему единственными параметрами меню являются Profile и Dashboard. Почему здесь нет пункта меню Posts? БлагодаряНет меню с использованием пользовательской роли пользователя в WordPress

$lister_user_role = add_role('lister', __('Lister'), 

    array(

    'read'   => true, //true allows this capability 
    'edit_posts' => true, //allows user to edit posts 
    'create_posts' => true, //allows users to create posts 
    'publish_posts' => true, //allows users to publish posts 

    'delete_posts'  => false, //do not allow user to delete posts 
    'edit_others_posts' => false, //do not allow a lister to edit others' posts 
    'edit_themes'  => false, //do not allow a lister to edit theme 
    'install_plugins' => false, //do not allow a lister to install plugins 
    'update_plugin'  => false, //do not allow a lister to update plugins 
    'update_core'  => false //do not allow a lister to update WP Core 

    ) 

); 

ответ

3

С add_role статьи в Codex (https://codex.wordpress.org/Function_Reference/add_role):

При определении пользовательской роли, и добавление возможностей роли с помощью add_role(), следует знать, что изменение массива возможностей и повторное выполнение add_role() не обязательно обновляет роль в списке новых возможностей. Функция add_role() замыкается, если роль уже существует в базе данных.

Другими словами, когда вы создали свою роль в первый раз, & выполнил ваш сайт, эта роль была создана. В то время, вероятно, вы не задали все поля, которые вы хотите. Таким образом, чтобы обновить новую роль пользователя, сначала нужно удалить его с помощью remove_role (https://codex.wordpress.org/Function_Reference/remove_role) &, затем add_role снова.

Кроме того, после воссоздания роли попробуйте назначить пользователя на любую другую роль &, а затем снова на роль «листер». Надеюсь, что это поможет.

+0

Большое спасибо за помощь. Все отлично работает. –

Смежные вопросы