get_admin_page_title()
云策文档标注
概述
get_admin_page_title() 函数用于获取当前 WordPress 管理页面的标题。它通过全局变量和菜单结构动态确定标题,优先返回已设置的 $title,否则从 $menu 或 $submenu 数组中提取。
关键要点
- 函数返回当前管理页面的标题字符串,基于全局变量如 $title、$pagenow、$plugin_page 等。
- 内部逻辑首先检查 $title 是否已定义,若为空则遍历 $menu 和 $submenu 数组匹配页面钩子或路径。
- 依赖 get_plugin_page_hook() 和 get_admin_page_parent() 辅助函数来确定插件页面和父页面关系。
- 适用于 WordPress 开发者需要动态获取或显示管理页面标题的场景,例如自定义管理界面。
代码示例
// 示例:获取并输出当前管理页面标题
$page_title = get_admin_page_title();
echo '当前页面标题:' . esc_html( $page_title );注意事项
- 函数在 WordPress 1.5.0 版本引入,兼容性良好。
- 使用时需确保在管理页面上下文中调用,否则可能返回空或不准确结果。
- 标题提取依赖于 WordPress 核心的菜单结构,自定义菜单需确保正确设置相关数组元素。
原文内容
Gets the title of the current admin page.
Source
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;
}
Changelog
| Version | Description |
|---|---|
| 1.5.0 | Introduced. |
Skip to note 2 content
Codex
Displays admin page title
<h1></h1>