フロントエンドからのみ管理バー(スタイリング)を削除するにはどうすればよいですか?


10

ログインすると、管理バーは私のページ<head>セクションに以下を追加します。

<style media="screen" type="text/css">
    html { margin-top: 28px !important; }
    * html body { margin-top: 28px !important; }
</style>

これで、管理バーを無効にすることでこれを削除できます

/* Disable the Admin Bar. */
add_filter( 'show_admin_bar', '__return_false' );

または完全に削除する

/* Remove admin bar */
remove_action('init', 'wp_admin_bar_init');

管理インターフェイスの管理バーを保持し、CSSをフロントエンドから削除するだけです。

設定したところでCSSリセットをすでに使用していますmargin: 0pxが、管理バーのスタイル設定はこれをオーバーライドします。

では、どうすればフロントエンドからスタイリングを削除できますか?

PS。ユーザーごとに管理バーを無効にできることは知っていますが、それは私が望んでいることではありません。

回答:


21
function hide_admin_bar_from_front_end(){
  if (is_blog_admin()) {
    return true;
  }
  return false;
}
add_filter( 'show_admin_bar', 'hide_admin_bar_from_front_end' );

編集:

@Walfがコメントで示唆したように、これは次のように書くことができます:

add_filter('show_admin_bar', 'is_blog_admin');

1
ああ:)私が同様のことを試したとき、私は管理者のためにテストしていました。について忘れてしまったis_blog_admin。ありがとう:)
Steven

これはどのファイルに入ります...私はWPにかなり新しい...

@HiroProtagonistこれは、任意のプラグインまたはテーマのfunctions.phpで定義できます。
Maxim Krizhanovsky、2012年

2
あなたはそれを少し短くすることができます:add_filter( 'show_admin_bar', function (){ return is_blog_admin() });
MiCc83

1
あなたはそれを短縮することができ、多くのadd_filter('show_admin_bar', 'is_blog_admin');私は編集を提案したが、それが拒否されました。2人の強力なレビュアーは、まったく同じであることに気付かずに、あまりにも多くの変化を感じたと思います。
Walf

5

ページから管理バー(ツールバー)とバンプCSSを削除する場合は、次のようにします。

function wpse_99333_hide_admin_bar_from_front_end(){
  if ( is_blog_admin() ) {
    return true;
  }
  remove_action( 'wp_head', '_admin_bar_bump_cb' );
  return false;
}
add_filter( 'show_admin_bar', 'wpse_99333_hide_admin_bar_from_front_end' );

この_admin_bar_bump_cb関数はCSSを挿入するものです(wp-includes / admin-bar.phpにあります)


1

私はこのようなことをします:

ヘッド/ボディクラスの管理バー/ CSSを削除する

show_admin_bar(false);

またはあなたが単にしたい場合:マージントップCSSを削除htmlします<head>

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

テスト済み:バージョン4.7.3


0

私は最近これをしなければならなかった、私はただワードプレスのデフォルトのインラインCSSスタイル(管理バー用)を削除してほしかったが、私は管理バーを残してほしかった。ページの上部ではなく下部に管理バーを表示していました。

これは、_admin_bar_bump_cb関数からスタイルを注入することで解消されたものです。functions.phpに以下を追加しました

// remove wordpress trying to style the admin bar with inline css
function hide_admin_bar_from_front_end(){
  remove_action( 'wp_head', '_admin_bar_bump_cb' );
  return true;
}
add_filter( 'show_admin_bar', 'hide_admin_bar_from_front_end' );
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.