Удаление пунктов меню в административной панели WordPress
При создании блога полезно ограничить доступ к определённым функциям. Это поможет избежать многих проблем, например, случайного удаления основной темы. Для этого нужно внести изменения в файл functions.php
вашей темы. Важно отметить, что удаление пунктов меню не запрещает прямой доступ к ним (по ссылке), а просто визуально скрывает эти элементы.
Удаление меню с помощью кода
Для того чтобы удалить пункты меню, нужно использовать следующий код:
add_action( 'admin_menu', 'remove_admin_menus' );
function remove_admin_menus(){
global $menu;
$unset_titles = [
__( 'Dashboard' ),
__( 'Posts' ),
__( 'Media' ),
__( 'Links' ),
__( 'Pages' ),
__( 'Appearance' ),
__( 'Tools' ),
__( 'Users' ),
__( 'Settings' ),
__( 'Comments' ),
__( 'Plugins' ),
];
end( $menu );
while( prev( $menu ) ){
$value = explode( ' ', $menu[ key( $menu ) ][0] );
$title = $value[0] ?: '';
if( in_array( $title, $unset_titles, true ) ){
unset( $menu[ key( $menu ) ] );
}
}
}
Объяснение кода
В этом коде используется функция add_action()
, которая предназначена для добавления пользовательских функций в определенные точки работы WordPress. В данном случае, мы добавляем функцию remove_admin_menus
для выполнения при загрузке административной панели.
Переменные:
- $menu: глобальная переменная, содержащая все пункты меню административной панели.
- $unset_titles: массив названий пунктов меню, которые мы хотим скрыть.
Что скрывается
Вот список пунктов меню, которые мы удаляем с помощью нашего кода:
- __('Dashboard') — главная страница администрирования (панель управления);
- __('Posts') — меню "Записи";
- __('Media') — меню "Медиа" (для изображений, видео и т.д.);
- __('Links') — ненужный пункт меню "Ссылки";
- __('Pages') — меню "Страницы";
- __('Appearance') — меню "Внешний вид";
- __('Tools') — меню "Инструменты", где находятся функции импорта и экспорта;
- __('Users') — управление пользователями;
- __('Settings') — меню "Настройки". Можно скрыть его от клиентов, иначе они могут внести изменения;
- __('Comments') — управление комментариями;
- __('Plugins') — и наконец, "Плагины".
Удаление пунктов меню и подменю
Также в WordPress есть специальные функции для удаления пунктов меню и подменю:
remove_menu_page()
— для удаления основных пунктов меню.remove_submenu_page()
— для удаления подменю.
Эти функции могут быть полезны, если необходимо более детально управлять элементами меню.
Заключение
Удаление ненужных пунктов меню в административной панели WordPress — это простой и эффективный способ улучшить пользовательский опыт, особенно если вы выставляете сайт на продажу или отдаетесь в управление клиенту. С помощью приведённого выше кода вы сможете скрывать эти пункты меню и контролировать доступ к функциям вашего сайта.