Настраиваем панель администрирования WordPress: пользовательское меню администрирования
Описание урока:
- Программное обеспечение: WordPress;
- Сложность: Новичок;
- Полное время на выполнение: 30 минут.
Окончательный результат: То, чего вы достигнете

Скачать материалы по данной статье
Это третья из шести частей цикла "Пользовательская настройка панели администрирования WordPress":
1. Пользовательская настройка панели администрирования WordPress: Форма входа;
2. Пользовательская настройка панели администрирования WordPress: панель управления сайтом;
3. Настраиваем панель администрирования WordPress: пользовательское меню администрирования;
4. Настройка административной панели WordPress: текстовая справка;
5. Настройка панели администрирования WordPress – списки объектов;
6. Настраиваем панель администрирования WordPress – изменяем стиль элементов.
В первых двух частях этого цикла статей я показал вам, как настроить панель авторизации WordPress и собственно панель администрирования. В третьей части я расскажу, как настроить меню администрирования.
В этом уроке вы узнаете, как:
- Переименовывать пункты меню (в данном случае «Записи»);
- Удалять пункт меню (в данном случае «Комментарии»);
- Изменять последовательность пунктов меню так, чтобы элементы, которые используются чаще, располагались выше.
Для этого я хочу создать отдельный плагин. Если вы после выполнения частей 1 и 2 этой серии уже создавали собственные плагины, возможно вы захотите добавить новый код к ним. Так, чтобы получить один универсальный плагин для полной настройки панели администрирования WordPress.
Что вам понадобится
Для выполнения заданий из этого урока вам понадобится:
- Установить систему WordPress;
- Открыть права доступа к папке плагинов вашего сайта, чтобы можно было добавить собственный новый плагин;
- Текстовый редактор по вашему предпочтению для редактирования кода плагина.
Общие настройки плагина
В начале моего плагина я по обыкновению добавляю следующие строки:
/*
Название плагина: Customize the Admin Part 3 - admin menus
URI плагина: http://rachelmccollin.co.uk
Описание: Данный плагин предназначен для настройки меню инструментов в панели администрирования WordPress.
Версия: 1.0
Автор: Рэйчел МакКоллин
Сайт автора: http://rachelmccollin.com
Лицензия: GPLv2
*/
1. Переименовываем пункты меню
Большинство сайтов, которые я создавала на WordPress – это вовсе не блоги. Это сайты для клиентов, и они, даже если и используют записи, то вовсе не для постов, а для новостей. Так что я собираюсь переименовать пункт меню «Записи» в «Новости». Вы можете переименовать любой тип контента WordPress во что угодно.
Например:
- Записи могут стать новостями, статьями или обновлениями;
- Медиафайлы могут называться изображения, приложения или загрузки.
Чтобы переименовать пункт «Записи», добавьте в ваш плагин следующий код:
// Переименовываем пункт меню «Записи» в «Новости»
function wptutsplus_change_post_menu_label() {
global $menu;
global $submenu;
$menu[5][0] = 'News';
$submenu['edit.php'][5][0] = 'News Items';
$submenu['edit.php'][10][0] = 'Add News Item';
}
add_action( 'admin_menu', 'wptutsplus_change_post_menu_label' );
Этот код ссылается на глобальные переменные $menu и $submenu. Число в квадратных скобках указывает, какой именно пункт меню я имею в виду (каждый пункт меню имеет свой номер, который соответствует его позиции). Я встраиваю в функцию переименования записей ссылку на admin_menu. С помощью нее происходит обработка данных, именно ее я буду использовать в данном уроке.
Это приводит к тому, что меню администрирования выглядит теперь так, как показано на скриншоте:

Примечание: Панель управления, показанная на скриншоте, была нами уже настроена ранее, и потому выглядит не совсем так, как стандартная админка WordPress. См. часть 2 этой серии.
Как вы можете видеть, там, где обычно находится пункт меню «Записи», теперь появилась кнопка «Новости». Как и раньше, с помощью нее мы получаем доступ к разделу записей, но теперь он называется по-другому. Тип записей не изменился.
Следующим шагом будет переименование подпунктов меню записей.
Для этого в наш плагин нужно добавить следующий код:
// Редактируем подпункты меню
function wptutsplus_change_post_object_label() {
global $wp_post_types;
$labels = &$wp_post_types['post']->labels;
$labels->name = 'News';
$labels->singular_name = 'News Item';
$labels->add_new = 'Add News Item';
$labels->add_new_item = 'Add News Item';
$labels->edit_item = 'Edit News Item';
$labels->new_item = 'News Item';
$labels->view_item = 'View News Item';
$labels->search_items = 'Search News Items';
$labels->not_found = 'No News Items found';
$labels->not_found_in_trash = 'No News Items found in Trash';
}
add_action( 'admin_menu', 'wptutsplus_change_post_object_label' );
Теперь изменилось не только название верхнего пункта меню, но все подпункты раздела. Как это выглядит - показано на скриншоте:

В разделе появились новые названия, такие как «Добавить новость» и заголовки в панели.
2 . Удаление пунктов меню
Теперь, когда мы переименовали «Записи» в «Новости» меню администрирования больше соответствует роду деятельности заказчика сайта. Но я могу еще больше его оптимизировать - удалить из меню все ненужные пункты.
Для большинства клиентских сайтов, которые я делаю, комментарии я отключаю практически сразу. Поэтому можно исключить из меню и этот раздел. Чтобы не смущать клиентов.
Добавляем в наш плагин следующее:
// Удаляем раздел меню Комментарии из панели всех пользователей, кроме
// Администратора.
function wptutsplus_remove_comments_menu_item() {
$user = wp_get_current_user();
if ( ! $user->has_cap( 'manage_options' ) ) {
remove_menu_page( 'edit-comments.php' );
}
}
add_action( 'admin_menu', 'wptutsplus_remove_comments_menu_item' );
При этом используется функция remove_menu_page связанная со страницей комментариев, которая генерируется из файла comments.php.
Примечание: Я прописываю для этой функции условие через manage_options так, чтобы этот раздел меню был доступен в панели Администраторов. Так, на всякий случай!
Как вы можете видеть на скриншоте, раздел меню «Комментарии» в настоящий момент отсутствует.

3. Изменение последовательности пунктов меню
Последний вид настройки, который я собираюсь предпринять, это изменить последовательность пунктов меню администрирования так, чтобы элементы, которые мои клиенты будут использовать чаще, располагались выше. В данном случае, я хочу переместить элемент «Страницы» выше раздела меню «Медиафайлы».
Для этого я использую два фильтра:
- custom_menu_order – активирует фильтр menu_order, который в качестве параметра оперирует значением __return_true;
- menu_order – в котором вы с помощью функций задаете новый порядок расположения пунктов меню.
Добавляем в наш плагин, следующий код:
// Размещаем раздел меню Страницы выше пункта Медиафайлы
function wptutsplus_change_menu_order( $menu_order ) {
return array(
'index.php',
'edit.php',
'edit.php?post_type=page',
'upload.php',
);
}
add_filter( 'custom_menu_order', '__return_true' );
add_filter( 'menu_order', 'wptutsplus_change_menu_order' );
Это позволит перегруппировать элементы меню в порядке, заданном в массиве. Пункт «Медиафайлы» будет выводиться под пунктом меню «Страницы». Теперь у вас есть простое, настроенное под конкретного пользователя меню.
Заключение
С помощью настройки меню администрирования WordPress можно сделать процесс управления сайтом более простым и быстрым, как для себя, так и для своих клиентов. Мы можем задавать пунктам меню новые, более соответствующие названия, удалять ненужные элементы и размещать их в таком порядке, чтобы самые часто используемые разделы находились вверху. Вы сами можете поработать еще в этом направлении: переместить любые пункты вверх или вниз, как вам больше подходит, переименовать раздел «Медиафайлы» и так далее.