Статьи

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

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

В этом уроке вы научитесь:

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

Я собираюсь создать плагин для этого — если вы уже создали плагин после выполнения частей 1 и 2 этой серии, вы можете добавить код из этого учебного пособия в этот плагин, предоставляя вам один плагин со всеми настройки вашего администратора.


Для завершения этого урока вам понадобятся:

  • Установка WordPress
  • Доступ к папке плагинов вашего сайта, чтобы добавить свой плагин
  • Текстовый редактор для создания вашего плагина

В начале моего плагина я добавляю следующие строки:

1
2
3
4
5
6
7
8
9
/*
Plugin Name: WPTutsPlus Customize the Admin Part 3 — admin menus
Plugin URI: http://rachelmccollin.co.uk
Description: This plugin supports the tutorial in wptutsplus.
Version: 1.0
Author: Rachel McCollin
Author URI: http://rachelmccollin.com
License: GPLv2
*/

Большинство сайтов, которые я создаю в WordPress, не являются блогами — обычно это клиентские сайты, которые, если они используют посты, будут использовать их для новостей, а не для постов в блогах. Поэтому я собираюсь переименовать «Посты» в меню администратора в «Новости». Вы можете переименовать любой тип контента WordPress на любой, какой захотите, например:

  • сообщения могут стать новостями, статьями или обновлениями
  • медиа могут стать изображениями, вложениями или загрузками

Чтобы переименовать сообщения, добавьте следующий код в ваш плагин:

1
2
3
4
5
6
7
8
9
// Rename Posts to News in Menu
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 — числа в квадратных скобках сообщают WordPress о том, какие пункты меню я имею в виду, поскольку каждый пункт меню имеет свой номер, соответствующий его порядку в меню. Я присоединяю свою функцию для переименования сообщений к admin_menu , который является хуком действия, который я буду использовать в этом уроке.

Это меняет меню администратора, как показано на скриншоте:

Customizing-The-WordPress-администратора-part3 косяки-переименованы

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

Как вы можете видеть, где обычно находится меню «Сообщения», оно гласит «Новости». Это дает вам доступ к сообщениям так же, как и раньше, но с другим ярлыком. Тип поста не изменился.

Следующим шагом является переименование элементов подменю для сообщений и любое другое использование термина «публикация» на экранах администратора.

В ваш плагин добавьте следующее:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
// Edit submenus
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’ );

Теперь изменился не только элемент меню верхнего уровня, но и все ссылки на сообщения, как показано на скриншоте:

Customizing-The-WordPress-администратор-part3-сообщения-переименовано-подменит

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


Меню администратора ближе к отражению структуры моих клиентских сайтов, теперь посты называются новостями. Но я могу упростить вещи дальше, удалив ненужные пункты меню.

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

В ваш плагин добавьте следующее:

1
2
3
4
5
6
7
8
// Remove Comments menu item for all but Administrators
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 со remove_menu_page для страницы редактирования комментариев, которая является edit-comments.php .

Примечание: я manage_options функцию в проверку возможности manage_options , так что пункт меню Комментарии не будет скрыт для администраторов, на всякий случай!

Как видно на скриншоте, пункт меню «Комментарии» теперь удален.

Customizing-The-WordPress-админ-part3-Удаление пункта меню

Последняя настройка, которую я собираюсь сделать, — изменить порядок меню администратора, чтобы элементы, которые мои клиенты будут использовать чаще, находились выше. В этом случае я собираюсь переместить пункт меню Страницы над медиа.

Вы делаете это с помощью двух фильтров:

  • custom_menu_order , который активирует фильтр menu_order и должен иметь __return_true качестве значения.
  • menu_order , к которому вы прикрепляете свою функцию, определяющую новый порядок меню.

В ваш плагин добавьте следующее:

01
02
03
04
05
06
07
08
09
10
11
// Move Pages above Media
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’ );

Это упорядочит меню в порядке, указанном в массиве, так что Media появится после Pages. Теперь у вас есть простое настраиваемое меню администратора.


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