Intereting Posts
Список всех сообщений в категории с функцией query_post () Лучший способ справиться с отсутствием заголовков в микроблоге Не удалось завершить установку InfiniteWP – НАРУЖНОЕ МАКСИМАЛЬНОЕ ВРЕМЯ ВЫПОЛНЕНИЯ ВЫКЛЮЧЕНО Как настроить htaccess для перенаправления определенного типа сообщения или подкаталога на HTTPS? Опросить страницу в цикле для проверки типа шаблона или настраиваемых метаданных (Страницы против сообщений) Неустранимая ошибка: вызов неопределенной функции is_multisite () Не удалось найти корневую директорию WordPress Исключить названия изображений из результатов поиска Не удается фильтровать wp_get_attachment_link Проблемы с title-тегом и document_title_parts Изменить регистрацию пользователя wp_create_user неправильно вводит пароль Экспортируйте блог (не мой) как документ PDF Роли для пользовательских типов сообщений Повторяемые поля страницы

Экран настройки местоположения (контекстная) вкладки справки

Использование нового класса WP_Screen позволяет легко добавить текст справки на экран.

 <?php add_action( "load-{$somepage}", 'wpse_load_reading' ); function wpse_load_reading() { get_current_screen()->add_help_tab( array( 'id' => 'my-help-tab', 'title' => __( 'My Title' ), 'content' => __( 'Help Content' ) ) ); } 

Это удобно для пользовательских страниц. Но при добавлении вкладки справки на существующий экран, скажем, options-reading.php , происходит какая-то странность.

load-options-reading.php срабатывает, прежде чем встроенная страница WP добавит свои собственные вкладки справки. Другими словами, добавление вкладки справки к существующему экрану удаляет все встроенные вкладки справки в нижней части списка.

Вот какой код, если вы хотите попробовать:

 <?php add_action( "load-options-reading.php", 'wpse_load_reading2' ); function wpse_load_reading2() { get_current_screen()->add_help_tab( array( 'id' => 'my-help-tab', 'title' => __( 'My Title' ), 'content' => __( 'Why is this tab above the built in tab?' ) ) ); } 

Есть ли способ изменить порядок вкладок справки на экране?

РЕДАКТИРОВАТЬ:

Нашел путь вокруг этого. По умолчанию вкладки справки добавляются до включения файла admin-header.php .

Таким образом, вы можете подключиться к load-{$built_in_page} , а оттуда подключить функцию admin_head которая занимается настройкой вкладок.

 <?php add_action( 'load-options-reading.php', 'wpse45210_load' ); function wpse45210_load() { add_action( 'admin_head', 'wpse45210_add_help' ); } function wpse45210_add_help() { get_current_screen()->add_help_tab( array( 'id' => 'my-help-tab', 'title' => __( 'My Title' ), 'content' => __( 'This tab is below the built in tab.' ) ) ); } 

Кажется, это как взломать. Есть ли способ лучше?

Solutions Collecting From Web of "Экран настройки местоположения (контекстная) вкладки справки"

Используйте действие admin_head-$hook_suffix , это тот же метод, который просто удаляет действие exta и обратный вызов.

Как предположил @Mamaduka, вы можете подключиться к admin_head-{$page_hook} и добавить туда контекстуальную справку. admin_head запускается после добавления вкладок контекстной справки по умолчанию.

 <?php add_action( 'admin_head-options-reading.php', 'wpse45210_add_help' ); function wpse45210_add_help() { get_current_screen()->add_help_tab( array( 'id' => 'my-help-tab', 'title' => __( 'My Title' ), 'content' => __( 'This tab is below the built in tab.' ) ) ); } 

Я думаю, у вас есть три возможности:

  1. Используйте WP_Screen->$_help_tabs чтобы переупорядочить их вручную.
  2. Храните существующие вкладки справки, временно сохраняйте их в другом месте. Затем используйте WP_Screen->remove_help_tab( $id ) а затем добавьте их обратно вручную.
  3. Используйте фильтр admin_head чтобы заполнить вкладки справки или пропустить один из фильтров или перехватчиков, которые запускаются перед ним в admin-header.php