删除后剩余的管理栏css

时间:2011-04-04 作者:Mild Fuzz

我正在使用以下代码删除管理栏(客户端请求)。

add_filter( \'show_admin_bar\', \'__return_false\' );
问题是,它会留下一些自动生成的CSS,在我的页面顶部放置一条巨大的白线(通过28px的上边距规则)。我怎样才能把它关掉呢?

4 个回复
最合适的回答,由SO网友:Chris_O 整理而成

要完全删除管理栏,请使用wp\\u degregister\\u脚本取消js和css的注册并删除操作。

if (!is_admin() && !current_user_can(\'add_users\')){
    wp_deregister_script( \'admin-bar\' );
    wp_deregister_style( \'admin-bar\' );
    remove_action(\'wp_footer\',\'wp_admin_bar_render\',1000);
}

SO网友:Jan Fabry

我认为您添加此筛选器太晚了init?), 所以初始化确实发生了,但其余的没有发生。

检查的三个地方show_admin_bar (通过is_admin_bar_showing()) 是:

  • _wp_admin_bar_init(), 已调用init. 这将创建the WP_Admin_Bar class, 哪一个hooks into wp_headadds the 28px margin at the top.
  • get_body_class() 添加admin-bar 类到body标记(奇怪的是,这不是通过挂接到body_class?)
  • wp_admin_bar_render() 执行实际渲染。如果禁用此选项,但不禁用第一个选项,则顶部会出现一个空白区域_wp_admin_bar_init() 已调用init, 如果同时添加show_admin_bar 过滤器打开init, 除非你改变优先级。

    这将不会呈现管理栏,但仍会添加28px的边距:

    add_filter( \'init\', \'wpse13875_init\' );
    function wpse13875_init()
    {
        add_filter( \'show_admin_bar\', \'__return_false\' );
    }
    
    这将完全禁用管理栏,因为它将在_wp_admin_bar_init():

    add_filter( \'init\', \'wpse13875_init\', 9 );
    function wpse13875_init()
    {
        add_filter( \'show_admin_bar\', \'__return_false\' );
    }
    

SO网友:bueltge

看见this answer, 是一个完整的解决方案,包括卸载脚本和样式。钩子移除了管理栏,但没有移除js和css的负载。

SO网友:anu

难道你不能重写CSS吗?这可能是最简单的方法,添加一个显示:无论管理栏选择器是什么,都没有

结束

相关推荐