web-dev-qa-db-ja.com

32 pxの間隔を含むフロントエンド管理バーを隠す

カスタムテンプレートがあり、ページの管理バーを削除するために次のスニペットを挿入しました。

function hide_admin_bar(){ return false; }
add_filter( 'show_admin_bar', 'hide_admin_bar' );

問題は、これがまだ高さ32ピクセルのページの上部に空白の白い空のバーを残すことです。コアを見ると、この機能が見えますが、無効にする方法はありません。私はまた私のテーマスタイルシートの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>

特定のテンプレートページの上部(および空白)から管理者バーを完全に削除するためのクリーンな方法がありますか?

3
Adam

表示状態は show_admin_bar関数で設定できます

<?php show_admin_bar( false ); ?>
3
rafawhs

Amit Mishraの答えは私の問題を解決します、私は下に私のコードを入れました、どうもありがとう

管理者は管理バーを見ることができますが、他のユーザーは見ることができません。

この解決法では、高さが32ピクセルの一番上の空白のバンドを残すことはありません。 _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);
    }
}
1
zqcolor

これはちょっと厄介なことですが、WordPressのコアがうまくいったように、以下のスニペットをインラインで追加することに気付きました。私はインラインスタイルが嫌いですが、人生がいつもレモネードを生み出すとは限りません。

/**
 * 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' );
0
Adam

これをあなたのfunction.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);
                }
            }
0
Amit Mishra