Настраиваем панель администрирования WordPress: пользовательское меню администрирования

Описание урока:

  • Программное обеспечение: WordPress;
  • Сложность: Новичок;
  • Полное время на выполнение: 30 минут.

Окончательный результат: То, чего вы достигнете

Скачать материалы по данной статье

Это третья из шести частей цикла "Пользовательская настройка панели администрирования WordPress":

1. Пользовательская настройка панели администрирования WordPress: Форма входа;

2. Пользовательская настройка панели администрирования WordPress: панель управления сайтом;

3. Настраиваем панель администрирования WordPress: пользовательское меню администрирования;

4. Настройка административной панели WordPress: текстовая справка;

5. Настройка панели администрирования WordPress – списки объектов;

6. Настраиваем панель администрирования WordPress – изменяем стиль элементов.

В первых двух частях этого цикла статей я показал вам, как настроить панель авторизации WordPress и собственно панель администрирования. В третьей части я расскажу, как настроить меню администрирования.

В этом уроке вы узнаете, как:

  1. Переименовывать пункты меню (в данном случае «Записи»);
  2. Удалять пункт меню (в данном случае «Комментарии»);
  3. Изменять последовательность пунктов меню так, чтобы элементы, которые используются чаще, располагались выше.

Для этого я хочу создать отдельный плагин. Если вы после выполнения частей 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

В разделе появились новые названия, такие как «Добавить новость» и заголовки в панели.

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 можно сделать процесс управления сайтом более простым и быстрым, как для себя, так и для своих клиентов. Мы можем задавать пунктам меню новые, более соответствующие названия, удалять ненужные элементы и размещать их в таком порядке, чтобы самые часто используемые разделы находились вверху. Вы сами можете поработать еще в этом направлении: переместить любые пункты вверх или вниз, как вам больше подходит, переименовать раздел «Медиафайлы» и так далее.

РедакцияПеревод статьи «Customizing the WordPress Admin: Custom Admin Menus»