Использование нового 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.' )
) );
}
Кажется, вроде как взломать. Есть ли способ лучше?
WP_Screen::$_help_tabs
это личное. К сожалению, не могу получить к нему доступ напрямую. Смотрите мое редактирование, я сделал ваше третье предложение!