Как добавить справочную страницу в раздел «Инструменты» WordPress

Как добавить справочную страницу в раздел «Инструменты» WordPress

Введение

В админке 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) проверьте, что у пользователя есть право на редактирование этого типа записей.

Итог

Чтобы добавить справочную страницу в раздел «Инструменты»:

  1. Подключитесь к хуку admin_menu
  2. Вызовите add_submenu_page( 'tools.php', ... ) с нужными параметрами
  3. Реализуйте callback-функцию, которая выводит HTML справки
  4. При необходимости добавьте вкладку помощи через add_help_tab() на экранах редактирования

Комментарии

Пока нет комментариев. Станьте первым!

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *