В первых двух частях этой серии я показал вам, как настроить экран входа в WordPress и панель инструментов. В этой третьей части я покажу вам, как настроить меню администратора в WordPress.
В этом уроке вы научитесь:
- Переименовать пункт меню (в данном случае «Посты»)
- Удалить пункт меню (в данном случае «Комментарии»)
- Измените порядок своего меню, чтобы элементы, которые вы используете чаще, находились выше
Я собираюсь создать плагин для этого — если вы уже создали плагин после выполнения частей 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
*/
|
1. Переименование пункта меню
Большинство сайтов, которые я создаю в 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
, который является хуком действия, который я буду использовать в этом уроке.
Это меняет меню администратора, как показано на скриншоте:
Примечание. Панель инструментов, показанная на снимке экрана, была настроена, поэтому не похожа на стандартную панель инструментов. Смотрите часть 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’ );
|
Теперь изменился не только элемент меню верхнего уровня, но и все ссылки на сообщения, как показано на скриншоте:
В подменю появились новые метки, а также ссылка «Добавить новость» и заголовок экрана редактирования.
2. Удаление пунктов меню
Меню администратора ближе к отражению структуры моих клиентских сайтов, теперь посты называются новостями. Но я могу упростить вещи дальше, удалив ненужные пункты меню.
На большинстве клиентских сайтов, которые я создаю, комментарии отключены. Поэтому я могу удалить их из меню администратора, чтобы избежать путаницы клиентов.
В ваш плагин добавьте следующее:
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
, так что пункт меню Комментарии не будет скрыт для администраторов, на всякий случай!
Как видно на скриншоте, пункт меню «Комментарии» теперь удален.
3. Изменение порядка пунктов меню
Последняя настройка, которую я собираюсь сделать, — изменить порядок меню администратора, чтобы элементы, которые мои клиенты будут использовать чаще, находились выше. В этом случае я собираюсь переместить пункт меню Страницы над медиа.
Вы делаете это с помощью двух фильтров:
-
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 может упростить и ускорить процесс управления сайтом для вас и ваших клиентов, предоставляя пунктам меню более подходящие метки, удаляя ненужные элементы и следя за тем, чтобы меню находилось в наиболее полезном порядке. Вы можете пойти дальше, переместив любые пользовательские типы записей вверх и вниз в меню, возможно, переименовав медиа, и многое другое.