カスタムテンプレートがあり、ページの管理バーを削除するために次のスニペットを挿入しました。
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>
特定のテンプレートページの上部(および空白)から管理者バーを完全に削除するためのクリーンな方法がありますか?
表示状態は show_admin_bar関数で設定できます
<?php show_admin_bar( false ); ?>
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);
}
}
これはちょっと厄介なことですが、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' );
これをあなたの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);
}
}