禁用admin_bar的正确方法

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

add_filter( ‘show_admin_bar’, ‘__return_false’ );

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

1
 remove_action('init','wp_admin_bar_init');

这样做是不对的。

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

1
2
3
/* 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行,再次强调了:

1
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了:

1
add_filter( 'show_admin_bar', '__return_false' );

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

1
2
3
4
5
6
7
8
9
10
11
12
/**
 * Returns false
 *
 * Useful for returning false to filters easily
 *
 * @since 3.0.0
 * @see __return_true()
 * @return bool false
 */

function __return_false() {
    return false;
}
更多
5 Responses Post a comment
  1. alluse

    挖坟~最正确的写法
    show_admin_bar( false );//前台除去管理员菜单

  2. phoetry

    我是普通青年, lol
    ps: 刚更新3.3, 很好很强大

  3. 荒野无灯

    @胡一刀
    :twisted: 在这里:Users ==>Your Profile ==> "Show Admin Bar" ,然后把“ when viewing site”和“in dashboard”前面的勾去掉就ok了。

  4. 胡一刀

    我是二逼青年 我找了半天都没发现后台哪里可以关闭……

Leave a Reply

Note: You may use basic HTML in your comments. Your email address will not be published.

Subscribe to this comment feed via RSS