get_admin_page_title()WP 1.5.0

Получает заголовок страницы админки.

Заголовок страницы будет таким, какой был указан при регистрации страницы/подстраницы в функциях add_menu_page() и add_submenu_page().

Работает на основе данных глобальных переменных $menu и $submenu. В эти переменные собираются данные страниц админки при их регистрации через функции add_menu_page() и add_submenu_page() соответственно.

Результат работы этой функции (заголовок) сохраняется в глобальную переменную $title, которая доступна в админке. Но использовать её напрямую, пожалуй, не лучшая идея.

Хуков нет.

Возвращает

Строку. Заголовок текущей страницы админ-панели WordPress.

Использование

get_admin_page_title();

Примеры

0

#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 The filename of the current screen.
  • Global. Строка. $typenow The post type of the current screen.
  • Global. Строка. $plugin_page

Список изменений

С версии 1.5.0 Введена.

Код get_admin_page_title() WP 6.5.2

function get_admin_page_title() {
	global $title, $menu, $submenu, $pagenow, $typenow, $plugin_page;

	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;
}