Удаление пунктов меню в административной панели WordPress: код и объяснение

Удаление пунктов меню в административной панели 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 — это простой и эффективный способ улучшить пользовательский опыт, особенно если вы выставляете сайт на продажу или отдаетесь в управление клиенту. С помощью приведённого выше кода вы сможете скрывать эти пункты меню и контролировать доступ к функциям вашего сайта.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *