get_admin_page_title() WP 1.5.0

Отримує заголовок сторінки адмінки.

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

Працює на основі даних глобальних змінних $menu та $submenu . У ці змінні збираються дані сторінок адмінки під час їх реєстрації через функції 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 Filename of the current screen.
  • Global. Рядок. $typenow The post type of current screen.
  • Global. Рядок. $plugin_page

список змін

З версії 1.5.0Введено.

Код get_admin_page_title() WP 6.0.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;
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *