Допустимо, ви відкрили свій блог для гостьових авторів, ви створили для них користувача, і, можливо, навіть власну роль. Найімовірніше, у вас буде один або кілька пунктів меню, які ви не захочете показувати гостьовим авторам. Але як їх сховати? У цьому короткому уроці ми розглянемо, як з панелі керування 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