Допустим, вы открыли свой блог для гостевых авторов, вы создали для них пользователя, и, возможно, даже собственную роль. Скорее всего, у вас будет один или несколько пунктов меню, которые вы не захотите показывать гостевым авторам. Но как их спрятать? В этом коротком уроке мы рассмотрим, как из панели управления WordPress выборочно удалить определенные пункты меню в зависимости от конкретной роли пользователя.

Смотрите также:

Оказывается, это достаточно несложно: просто посмотрите URL-ы этих пунктов меню и затем используйте их для своей функции вот так:

add_action( 'admin_init', 'my_remove_menu_pages' );
function my_remove_menu_pages() {
 
    global $user_ID;
 
    if ( current_user_can( 'wpmayorauthor' ) ) {
    remove_menu_page( 'edit.php?post_type=thirstylink' );
    remove_menu_page( 'edit.php?post_type=wprss_feed' );
        remove_menu_page( 'authorhreview' );
    }
}

Вот некоторые названия страниц меню для самых распространенных пунктов меню, стандартных в WordPress:

remove_menu_page('edit.php'); // Записи
remove_menu_page('upload.php'); // Медиафайлы
remove_menu_page('link-manager.php'); // Ссылки
remove_menu_page('edit-comments.php'); // Комментарии
remove_menu_page('edit.php?post_type=page'); // Страницы
remove_menu_page('plugins.php'); // Плагины
remove_menu_page('themes.php'); // Внешний вид
remove_menu_page('users.php'); // Пользователи
remove_menu_page('tools.php'); // Инструменты
remove_menu_page('options-general.php'); // Параметры

Есть также некоторые плагины, которые помогут вам, если вы не очень любите писать код самостоятельно.

Adminimize

Admin Menu Editor

И еще один бонусный совет. Если вы хотите для какой-то роли удалить возможность просмотреть список постов других пользователей, используйте следующий код:

add_action( 'load-edit.php', 'posts_for_current_contributor' );
function posts_for_current_contributor() {
    global $user_ID;
 
    if ( current_user_can( 'contributor' ) ) {
       if ( ! isset( $_GET['author'] ) ) {
          wp_redirect( add_query_arg( 'author', $user_ID ) );
          exit;
       }
   }
 
}

И, конечно, если вы еще не слышали об этом, вот отличный плагин для управления ролями и правами в WordPress:

Members

Источник: WPMayor.com

Вам понравился материал?

Добавить комментарий

Такой e-mail уже зарегистрирован. Воспользуйтесь формой входа или введите другой.

Вы ввели некорректные логин или пароль

Извините, для комментирования необходимо войти.

3 комментария

сначала новые
по рейтингу сначала новые по хронологии

где саму роль вписывать в скрипт?

Владимир

Нужно писать не admin_init, a admin_menu

Алексей

Привет! У меня вопрос не по теме, но он меня волнует. Проблемы с плагином DB Cache Reloaded. Как я могу отправить скриншот с проблемой?