Столкнулся с такой проблемой — пользователи натворили дел в админке сайта, практически выведя его из строя. Откат было сделать невозможно — бекапов не было. Пришлось все восстанавливать вручную. А после было решено удалить пункты меню в админке WordPress, которые пользователям не нужны, оставив их только для админа.
Удаление пунктов меню в админке делается довольно просто — используем функцию remove_menu_page( $menu_slug ), которая удалит указанный пункт меню (при этом он остается доступным по ссылке). Проблема где взять этот $menu_slug. Очень просто — заходим в админку, и смотрим ссылки, на которые ведут пункты меню.
В этом примере я навел курсор на пункт Страницы и внизу FF показал мне ссылку. Меня интересует только ее последняя часть — edit.php?post_type=page
Это и есть $menu_slug для пункта меню Страницы. Вот еще некоторые из $menu_slug:
index.php — Консоль
edit.php — Записи
upload.php — Медиафайлы
link-manager.php — Ссылки
edit-comments.php — Комментарии
themes.php — Внешний вид
plugins.php — Плагины
users.php — Пользователи
tools.php — Инструменты
options-general.php — Параметры
Осталось скрыть ненужные пункты меню для всех, кроме администраторов (ах да — вдруг понадобится — что делать, если забыл пароль администратора).
Делается это просто:
function remove_admin_menu_items() {
remove_menu_page('link-manager.php');
remove_menu_page('edit.php');
remove_menu_page('themes.php');
remove_menu_page('plugins.php');
remove_menu_page('users.php');
remove_menu_page('tools.php');
remove_menu_page('options-general.php');
}
if( !current_user_can('administrator') ){
add_action( 'admin_menu', 'remove_admin_menu_items' );
}


3 комментария: WordPress удалить пункты меню в админке