Больше результатов...

Generic selectors
Только точные совпадения
Искать в заголовках
Искать в контенте
Post Type Selectors
Filter by Categories
FAQ
Hostenko
Вдохновение
Видеоуроки
Новости
Плагины
Темы
Уроки
Хаки

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

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

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

inet.ws - Powerful VPS Hosting in the USA, Canada, UK and DE!
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

Удаляем меню в админке WordPress в зависимости от роли пользователя

Admin Menu Editor

Удаляем меню в админке WordPress в зависимости от роли пользователя

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

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

Удаляем меню в админке WordPress в зависимости от роли пользователя

Источник: WPMayor.com
inet.ws - Powerful VPS Hosting in the USA, Canada, UK and DE!
Алексей Шевченко
редактор wpcafe
Изучает сайтостроение с 2008 года. Практикующий вебмастер, специализирующийся на создании сайтов на WordPress. Задать вопрос Алексею можно на https://profiles.wordpress.org/wpthemeus/

Комментарии к записи: 4

Алексей:

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

Владимир:

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

фыва:

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

!!!:

2022: Скрипт не работает через functions.php

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