Введение
В админке WordPress раздел «Инструменты» (Tools) удобен для размещения справочной информации, инструкций и вспомогательных страниц. В этой статье подробно описано, как добавить свою страницу справки в этот раздел на примере плагина Glossary Tooltips.
Что нужно знать
Для добавления страницы в админку WordPress используются функции:
- add_menu_page() — добавляет пункт в главное меню администратора
- add_submenu_page() — добавляет подпункт к существующему меню
Раздел «Инструменты» в WordPress имеет идентификатор (slug) tools.php. Чтобы добавить страницу именно в этот раздел, мы используем add_submenu_page() с родительским меню tools.php.
Пошаговая реализация
admin_menu">Шаг 1: Подключение к хуку admin_menu
WordPress вызывает хук admin_menu во время формирования меню админки. Нужно «подписаться» на этот хук и в callback-функции вызвать add_submenu_page().
add_action( 'admin_menu', array( $this, 'add_help_submenu' ), 25 );
Число 25 — приоритет выполнения: чем больше число, тем позже выполнится наша функция относительно других подписчиков на этот же хук.
add_submenu_page">Шаг 2: Регистрация страницы через add_submenu_page
Функция add_submenu_page() принимает несколько аргументов:
add_submenu_page(
'tools.php', // родительское меню (Инструменты)
'Как пользоваться глоссарием', // заголовок вкладки браузера
'Глоссарий: Справка', // текст пункта в меню
'read', // право доступа (capability)
'glossary-tooltips-help', // уникальный slug страницы
array( $this, 'render_help_page' ) // функция, которая выводит содержимое
);
Важные моменты:
- Право доступа (capability) — определяет, кто может видеть и открывать страницу. Значение
readдоступно любому авторизованному пользователю. Для страницы только для администраторов используютmanage_options. - Slug — уникальный идентификатор. URL страницы будет:
/wp-admin/tools.php?page=glossary-tooltips-help. - Callback — функция, которая выводит HTML-содержимое страницы. Она вызывается, когда пользователь открывает наш пункт меню.
Шаг 3: Функция вывода содержимого
Callback-функция render_help_page просто выводит HTML. Важно обернуть контент в <div class="wrap">, чтобы оформление соответствовало стилю админки WordPress.
public function render_help_page() {
?>
<div class="wrap">
<h1>Как пользоваться глоссарием</h1>
<p>Текст справки...</p>
</div>
<?php
}
Добавление вкладки «Справка» на экранах редактирования
Кроме отдельной страницы, можно добавить встроенную справку — вкладку в правом верхнем углу экрана. Для этого используется метод add_help_tab() у объекта экрана.
Когда показывать вкладку
Вкладка должна появляться только на нужных экранах: список терминов глоссария, создание и редактирование термина. Подключаемся к хукам загрузки этих страниц:
add_action( 'load-edit.php', array( $this, 'add_help_tab_on_list' ) );
add_action( 'load-post.php', array( $this, 'add_help_tab_on_edit' ) );
add_action( 'load-post-new.php', array( $this, 'add_help_tab_on_edit' ) );
Хуки load-edit.php, load-post.php и load-post-new.php срабатывают до вывода страницы, когда уже известен тип записи (post type) и можно проверить, находимся ли мы в разделе глоссария.
Получение объекта экрана и добавление вкладки
$screen = get_current_screen();
if ( $screen ) {
$screen->add_help_tab( array(
'id' => 'glossary-tooltips-help',
'title' => 'Как пользоваться',
'content' => '<p>Краткая справка...</p>'
) );
}
Функция get_current_screen() возвращает объект текущего экрана админки. У него есть метод add_help_tab(), который добавляет вкладку в контекстную справку (правый верхний угол).
Почему «не разрешено просматривать страницу»
Если при открытии страницы появляется сообщение «Извините, вам не разрешено просматривать эту страницу», причина в правах доступа (capability).
- Убедитесь, что указано минимально необходимое право. Для справки достаточно
read(есть у всех авторизованных). - Родительское меню должно быть доступно:
tools.phpдоступен всем, кто может войти в админку. - При использовании Custom Post Type в качестве родителя (
edit.php?post_type=xxx) проверьте, что у пользователя есть право на редактирование этого типа записей.
Итог
Чтобы добавить справочную страницу в раздел «Инструменты»:
- Подключитесь к хуку
admin_menu - Вызовите
add_submenu_page( 'tools.php', ... )с нужными параметрами - Реализуйте callback-функцию, которая выводит HTML справки
- При необходимости добавьте вкладку помощи через
add_help_tab()на экранах редактирования
