добавлять, редактировать, удалять страницы в пользовательской роли - PullRequest
0 голосов
/ 01 марта 2019

Попытка добавить возможность ' добавлять, редактировать и удалять страницы ' в пользовательской роли Wordpress.

Я создаю пользовательскую роль ниже, то есть ' sub admin '.Я пытаюсь предоставить доступ ко всем способностям «страницы»;но даже с указанием ниже, это не работает.(нет добавления страницы, редактируйте отображение текущих вкладок страницы).

Также возможно отметить;Я пытаюсь сделать это из файла /function.php пользовательской дочерней темы.Роль отображается на панели инструментов WP после кода ниже (т.е. Sub Admin), однако я не смог разрешить доступ к страницам.

add_role(
    'sub_admin',
    __( 'Sub Admin' ),
    array(
        'read'         => true,  
        'edit_posts'   => true,
        'publish_posts' => true,
        'edit_pages'   => true,
        'edit_others_pages' => true,
        'publish_page' => true,
        'edit_pages'=>true,
        'edit_published_pages'=>true,
        'publish_pages'=>true,
        'delete_pages'=>true,
        'delete_others_pages'=>true,
        'delete_published_pages'=>true,
    )
);

1 Ответ

0 голосов
/ 02 марта 2019

Пожалуйста, попробуйте исправить вашу проблему, попробовав эти подходы

Пожалуйста, убедитесь, что ваша роль была создана путем получения результата от add_role

$result = add_role(/*your args*/);
if ( null !== $result ) {
  echo 'Yay! New role created!';
}
else {
      echo 'Oh... the basic_contributor role already exists.';
}

Если не в порядке.Пожалуйста, убедитесь, что при попытке отредактировать страницу с этой ролью sub_admin

Если проблема не устранена, обратите внимание на уведомление руководства разработчика Wordpress

После первого вызоваДля add_role () роль и ее возможности будут храниться в базе данных!

Последовательные вызовы ничего не сделают, включая изменение списка возможностей, что может не соответствовать ожидаемому вами поведению.

Может быть, вам нужно remove_role(), а затем add_role снова.Возможно, вы создали роль в первый раз без каких-либо возможностей.

Также попробуйте использовать действие init для добавления ролей

function wporg_simple_role()
{
    remove_role('sub_admin');
    // or add_role('sub_admin');
}


add_action('init', 'wporg_simple_role');

Возможно, нет редактирующей роли, все возможности администратора:

activate_plugins
delete_others_pages
delete_others_posts
delete_pages
delete_posts
delete_private_pages
delete_private_posts
delete_published_pages
delete_published_posts
edit_dashboard
edit_others_pages
edit_others_posts
edit_pages
edit_posts
edit_private_pages
edit_private_posts
edit_published_pages
edit_published_posts
edit_theme_options
export
import
list_users
manage_categories
manage_links
manage_options
moderate_comments
promote_users
publish_pages
publish_posts
read_private_pages
read_private_posts
read
remove_users
switch_themes
upload_files
customize
delete_site

Возможно, админ-бар также зависит от manage_options.Вы можете удалить возможность manage_options, отметив, что это не страница администратора

function change_role() {
    global $wp_roles;

    if ( ! is_admin() ) {
        return;
    }

    // if not admin page - you could temporary remove manage capabilities from 
    // sub_admin role


}

add_action('wp', 'change_role');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...