get_admin_page_title() WP 1.0
Получает заголовок страницы админки.
Заголовок страницы будет таким, какой был указан при регистрации страницы/подстраницы в функциях add_menu_page() и add_submenu_page().
Работает на основе данных глобальных переменных $menu и $submenu. В эти переменные собираются данные страниц админки при их регистрации через функции add_menu_page() и add_submenu_page() соответственно.
Результат работы этой функции (заголовок) сохраняется в глобальную переменную $title, которая доступна в админке. Но использовать её напрямую, пожалуй, не лучшая идея.
Хуков нет.
Возвращает
Строку. Заголовок текущей страницы админ-панели WordPress.
Использование
get_admin_page_title();
Примеры
#1 Заголовок для созданной подстраницы в пункте меню "Инструменты" (tools)
Этот пример показывает как динамически вывести заголовок страницы Админки. Заголовок в данном случае указывается при регистрации страницы с помощью add_submenu_page().
<?php
// Добавим страницу-подменю в меню админ-панели "Инструменты" (tools)
add_action( 'admin_menu', function(){
add_submenu_page(
'themes.php', 'Страница моих инструментов', 'My Tools',
'edit_others_posts', 'theme_docs', 'my_tools_submenu_page_callback'
);
} );
function my_tools_submenu_page_callback(){
?>
<div class="wrap">
<h2><?= esc_html( get_admin_page_title() ) ?></h2>
Контент страницы здесь
</div>
<?php
}
Заметки
- Global. Строка. $title
- Global. Массив. $menu
- Global. Массив. $submenu
- Global. Строка. $pagenow
- Global. Строка. $plugin_page
- Global. Строка. $typenow
Список изменений
Код get_admin_page_title() get admin page title
WP 5.6.2
<?php
function get_admin_page_title() {
global $title, $menu, $submenu, $pagenow, $plugin_page, $typenow;
if ( ! empty( $title ) ) {
return $title;
}
$hook = get_plugin_page_hook( $plugin_page, $pagenow );
$parent = get_admin_page_parent();
$parent1 = $parent;
if ( empty( $parent ) ) {
foreach ( (array) $menu as $menu_array ) {
if ( isset( $menu_array[3] ) ) {
if ( $menu_array[2] === $pagenow ) {
$title = $menu_array[3];
return $menu_array[3];
} elseif ( isset( $plugin_page ) && $plugin_page === $menu_array[2] && $hook === $menu_array[5] ) {
$title = $menu_array[3];
return $menu_array[3];
}
} else {
$title = $menu_array[0];
return $title;
}
}
} else {
foreach ( array_keys( $submenu ) as $parent ) {
foreach ( $submenu[ $parent ] as $submenu_array ) {
if ( isset( $plugin_page )
&& $plugin_page === $submenu_array[2]
&& ( $pagenow === $parent
|| $plugin_page === $parent
|| $plugin_page === $hook
|| 'admin.php' === $pagenow && $parent1 !== $submenu_array[2]
|| ! empty( $typenow ) && "$pagenow?post_type=$typenow" === $parent )
) {
$title = $submenu_array[3];
return $submenu_array[3];
}
if ( $submenu_array[2] !== $pagenow || isset( $_GET['page'] ) ) { // Not the current page.
continue;
}
if ( isset( $submenu_array[3] ) ) {
$title = $submenu_array[3];
return $submenu_array[3];
} else {
$title = $submenu_array[0];
return $title;
}
}
}
if ( empty( $title ) ) {
foreach ( $menu as $menu_array ) {
if ( isset( $plugin_page )
&& $plugin_page === $menu_array[2]
&& 'admin.php' === $pagenow
&& $parent1 === $menu_array[2]
) {
$title = $menu_array[3];
return $menu_array[3];
}
}
}
}
return $title;
}
Cвязанные функции