_wp_admin_bar_init()
云策文档标注
概述
_wp_admin_bar_init() 函数用于实例化管理栏对象并将其设置为全局变量,以便在其他地方访问。它检查管理栏是否应显示,加载并实例化 WP_Admin_Bar 类,然后初始化和添加菜单。
关键要点
- 函数返回布尔值,表示管理栏是否成功初始化。
- 通过 is_admin_bar_showing() 检查管理栏是否应显示,否则返回 false。
- 使用 apply_filters('wp_admin_bar_class', 'WP_Admin_Bar') 过滤要实例化的管理栏类。
- 调用 $wp_admin_bar->initialize() 和 $wp_admin_bar->add_menus() 完成设置。
- 注意:取消挂钩此函数不会正确移除管理栏,应使用 show_admin_bar(false) 或 'show_admin_bar' 过滤器。
代码示例
function _wp_admin_bar_init() {
global $wp_admin_bar;
if ( ! is_admin_bar_showing() ) {
return false;
}
require_once ABSPATH . WPINC . '/class-wp-admin-bar.php';
$admin_bar_class = apply_filters( 'wp_admin_bar_class', 'WP_Admin_Bar' );
if ( class_exists( $admin_bar_class ) ) {
$wp_admin_bar = new $admin_bar_class();
} else {
return false;
}
$wp_admin_bar->initialize();
$wp_admin_bar->add_menus();
return true;
}注意事项
取消挂钩此函数不会正确移除管理栏;要移除管理栏,应使用 show_admin_bar(false) 或 'show_admin_bar' 过滤器。
原文内容
Instantiates the admin bar object and set it up as a global for access elsewhere.
Description
UNHOOKING THIS FUNCTION WILL NOT PROPERLY REMOVE THE ADMIN BAR.
For that, use show_admin_bar(false) or the ‘show_admin_bar’ filter.
Source
function _wp_admin_bar_init() {
global $wp_admin_bar;
if ( ! is_admin_bar_showing() ) {
return false;
}
/* Load the admin bar class code ready for instantiation */
require_once ABSPATH . WPINC . '/class-wp-admin-bar.php';
/* Instantiate the admin bar */
/**
* Filters the admin bar class to instantiate.
*
* @since 3.1.0
*
* @param string $wp_admin_bar_class Admin bar class to use. Default 'WP_Admin_Bar'.
*/
$admin_bar_class = apply_filters( 'wp_admin_bar_class', 'WP_Admin_Bar' );
if ( class_exists( $admin_bar_class ) ) {
$wp_admin_bar = new $admin_bar_class();
} else {
return false;
}
$wp_admin_bar->initialize();
$wp_admin_bar->add_menus();
return true;
}
Hooks
- apply_filters( ‘wp_admin_bar_class’, string $wp_admin_bar_class )
-
Filters the admin bar class to instantiate.
Changelog
| Version | Description |
|---|---|
| 3.1.0 | Introduced. |