Здравствуйте, сегодня приступим к процессу оптимизации админки wordpress: удалим ненужные пункты/подпункты меню с помощью кода или с помощью плагина.
Скачать исходники для статьи можно ниже
Для начала вам, возможно, понадобиться интересный плагин – userSwitcher – позволяющий переключаться между пользователями сайта, имеющими разные роли. Страница плагина – “wordpress.org/plugins/userswitcher/”:
Приступим же к изменению админки wordpress, а именно: Удаляем ненужные пункты/подпункты меню админки.
Можно воспользоваться для данного процесса как плагином, так и вручную с помощью добавления кода, рассмотрим оба данных способа ниже:
1. С помощью плагина.
Плагин – User Admin Simplifier.
Страница плагина: “wordpress.org/plugins/user-admin-simplifier/screenshots/”
Установка плагина стандартная – через панель управления – пункт “Плагины”, подпункт “Добавить новый”, в строку поиска вводим User Admin Simplifier – устанавливаем и активируем.
После активации плагина в пункте “Инструменты” появиться новый подпункт – User Admin Simplifier – заходим в него, выбираем пользователя и настраиваем под него пункты/подпункты меню админки:
2. Вручную – с помощью кода:
2.1. Удаляем пункты меню:
Для этого можно воспользоваться следующим кодом – его нужно разместить в файле functions.php:
add_action( 'admin_menu', 'remove_menus' ); function remove_menus(){ if ( !current_user_can( 'administrator' ) ) { remove_menu_page( 'tools.php' ); remove_menu_page( 'options-general.php' ); remove_menu_page( 'edit.php?post_type=page' ); } }
Удаление будет производиться для всех кроме Админа сайта, благодаря строчке:
if ( !current_user_can( 'administrator' ) ) { ... }
Чтобы удалить другие пункты меню:
remove_menu_page( 'index.php' ); //Dashboard Консоль remove_menu_page( 'edit.php' ); //Posts Записи remove_menu_page( 'upload.php' ); //Media Медиафайлы remove_menu_page( 'edit.php?post_type=page' ); //Pages Страницы remove_menu_page( 'edit-comments.php' ); //Comments Комментарии remove_menu_page( 'themes.php' ); //Appearance Внешний вид remove_menu_page( 'plugins.php' ); //Plugins Плагины remove_menu_page( 'users.php' ); //Users Пользователи remove_menu_page( 'tools.php' ); //Tools Инструменты remove_menu_page( 'options-general.php' ); //Settings Настройки
2.2. Удаляем подпункты меню:
Для подменю код удаления будет выглядеть так:
remove_submenu_page( $menu_slug, $submenu_slug );
Например, для удаления подпункта “Виджеты” пункта “Внешний вид” код будет следующим:
remove_submenu_page( 'themes.php', 'widgets.php' );
Здесь первый параметр, в нашем примере: themes.php (отвечает за пункт меню “Внешний вид”) вы можете заменить его на следующие:
For Dashboard: ‘index.php’
For Posts:’edit.php’
For Media: ‘upload.php’
For Links: ‘link-manager.php’
For Pages: ‘edit.php?post_type=page’
For Comments: ‘edit-comments.php’
For Custom Post Types: ‘edit.php?post_type=your_post_type’
For Appearance: ‘themes.php’
For Plugins:’plugins.php’
For Users: ‘users.php’
For Tools: ‘tools.php’
For Settings: ‘options-general.php’
For Settings in the Network Admin pages: ‘settings.php’
Чтобы узнать второй параметр – вам понадобиться зайти в нужный подпункт меню админки и посмотреть в адресную строку браузера, например: зайдем в пункт “Инструменты” и его подпункт “Импорт”:
Соответственно за подпункт “Импорт” отвечает – import.php
На этом все – удачи!
Хорошая статья, спасибо. Но нужна помощь. Установил плагин “OSD Remove All WordPress Branding”, он создал в меню “Настройки” свое подменю со ссылкой:
…./wp-admin/options-general.php?page=osd-remove-all-wp-creds-options
Пробую код:
add_action( ‘admin_menu’, ‘xelly_remove_sub_menu_items’ );
function xelly_remove_sub_menu_items() {
remove_submenu_page( ‘options-general.php’, ‘options-general.php?page=osd-remove-all-wp-creds-options’ );
}
Но подменю остается на месте. Попробовал удалить другие подменю с “красивыми” ссылками – все работает. Выше представленный вами плагин – тоже работает, но не подходит, – хотелось бы обойтись парой строк кода.
Заранее спасибо за любые советы.