Допустимо, ви відкрили свій блог для гостьових авторів, ви створили для них користувача, і, можливо, навіть власну роль. Найімовірніше, у вас буде один або кілька пунктів меню, які ви не захочете показувати гостьовим авторам. Але як їх сховати? У цьому короткому уроці ми розглянемо, як з панелі керування 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
Редактор меню адміністратора
І ще одна бонусна порада. Якщо ви хочете видалити можливість для будь-якої ролі переглянути список постів інших користувачів, використовуйте наступний код:
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:
Коментарі до запису: 4
Вітання! У мене питання не по темі, але воно мене хвилює. Проблеми із плагіном DB Cache Reloaded. Як я можу надіслати скріншот із проблемою?
Потрібно писати не admin_init, a admin_menu
де саму роль вписувати у скрипт?
2022: Скрипт не працює через functions.php