函数文档

_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.

Return

bool Whether the admin bar was successfully initialized.

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.