隐藏前端管理栏,包括32像素间距

时间:2014-08-11 作者:Adam

我有一个自定义模板,我插入了以下代码段以删除页面的管理栏:

function hide_admin_bar(){ return false; }
add_filter( \'show_admin_bar\', \'hide_admin_bar\' );
问题是,这仍然会在页面顶部留下一个高度为32px的白色空白条。看看core,我看到了这个函数,但没有办法禁用它。我还试着覆盖html { margin-top: 0 !important; } 在我的主题样式表中没有用,因为这是直接在页面上输出的。

function _admin_bar_bump_cb() { ?>
<style type="text/css" media="screen">
    html { margin-top: 32px !important; }
    * html body { margin-top: 32px !important; }
    @media screen and ( max-width: 782px ) {
        html { margin-top: 46px !important; }
        * html body { margin-top: 46px !important; }
    }
</style>
是否有人有一种干净的方法可以完全删除特定模板页面顶部的管理栏(加上空白)?

6 个回复
SO网友:rafawhs

您可以使用设置显示状态show_admin_bar function

<?php show_admin_bar( false ); ?>

SO网友:zqcolor

Amit Mishra的回答解决了我的问题,我已经把我的代码放在下面了,非常感谢

管理员可以看到管理栏,其他用户不能。

此解决方案不会留下高度为32px的顶部空白带。仅删除的其他答案_admin_bar_bump_cb 将在顶部留下一条难看的空白带

add_action(\'after_setup_theme\', \'remove_admin_bar_user\');
function remove_admin_bar_user() {
    if (current_user_can(\'administrator\') || is_admin() ) {
        show_admin_bar(true);
    }else{
        show_admin_bar(false);
    }
}

SO网友:Adam

这是一种黑客行为,但我发现添加下面的代码片段就像WordPress core所做的那样。我讨厌内联风格,但生活并不总是能生产柠檬水

/**
 * Hides the admin bar on a template page.
 */
function hide_admin_bar() {
    wp_add_inline_style(\'admin-bar\', \'<style> html { margin-top: 0 !important; } </style>\');
    return false;
}
add_filter( \'show_admin_bar\', \'hide_admin_bar\' );

SO网友:Amit Mishra

将此添加到函数中。php它从前端隐藏管理栏

add_action(\'after_setup_theme\', \'remove_admin_bar_user\');

function remove_admin_bar_user() {
                if (current_user_can(\'administrator\') || is_admin() ) {
                  show_admin_bar(false);
                }
            }

SO网友:Rick Curran

我找到了这个函数,它消除了使用“show\\u admin\\u bar(false)”后剩下的32px“bump”

remove_action(\'wp_head\', \'_admin_bar_bump_cb\');
这似乎很管用!

SO网友:Quy

从3.1.0版开始,WordPress决定在显示端为登录用户添加一个关于网站主题的工具栏。

并在之前添加默认管理栏回调</head>:

<style type="text/css" media="screen">
    html { margin-top: 32px !important; }
    * html body { margin-top: 32px !important; }
    @media screen and ( max-width: 782px ) {
        html { margin-top: 46px !important; }
        * html body { margin-top: 46px !important; }
    }
</style>
要删除它,您可以尝试:

add_action(\'get_header\', \'remove_admin_login_header\');
    function remove_admin_login_header() {
        remove_action(\'wp_head\', \'_admin_bar_bump_cb\');
    }

结束

相关推荐

主题的默认样式将覆盖我的插件的自定义CSS

我创建了一个小插件,创建了一个我制作的小部件,基本上只是一个<ul> 要素不幸的是,所有默认的小部件样式都覆盖了我的自定义CSS,并添加了!important 由于不同的尺寸和颜色变化,某些款式正在打破一些东西。有办法解决这个问题吗?我只希望样式表适用于我制作的一个小部件,而不是从默认值加载。如有任何提示/建议,将不胜感激。