禁用admin_bar的正确方法 » 荒野无灯weblog

Keep It Simple, Stupid.

荒野无灯weblog

禁用admin_bar的正确方法

1,普通青年
后台直接设置不显示admin_bar
2,文艺青年
remove_action(‘init’,'wp_admin_bar_init’);

add_filter( ‘show_admin_bar’, ‘__return_false’ );

不过,有些文艺青年的做法却是错误的,如:

 remove_action('init','wp_admin_bar_init');

这样做是不对的。

在wp-includes/admin-bar.php文件第11、12行可以看到如下一段注释:

/* To hide the admin bar, you're looking in the wrong place. Unhooking this function will not
 * properly remove the admin bar. For that, use show_admin_bar(false) or the show_admin_bar filter.
*/

再看第39行,再次强调了:

add_action( 'init', '_wp_admin_bar_init' ); // Don't remove. Wrong way to disable.

甚至已经把函数名由原来的wp_admin_bar_init改为了_wp_admin_bar_init,可能是怕大家继续用上面那种错误的方法来remove.

show_admin_bar这个filter是在同一文件中的is_admin_bar_showing()函数中的。

那么,怎么禁用admin_bar呢,很简单,看官方doc:
直接这样就ok了:

add_filter( 'show_admin_bar', '__return_false' );

这个函数是wp自定义的,作用就是返回false,在wp-includes/functions.php 第4398行:

/**
 * Returns false
 *
 * Useful for returning false to filters easily
 *
 * @since 3.0.0
 * @see __return_true()
 * @return bool false
 */
function __return_false() {
    return false;
}

Tagged in :

All Comments (0)
Gravatar image
No Comments