web-dev-qa-db-ja.com

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

ログインすると、管理バーは私のページの<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をフロントエンドから削除するだけです。

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

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

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

10
Steven
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' );
20

あなたのページから管理バー(ツールバー)とバンプ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にあります)。

5
jjeaton

私はこのようなことをするだろう:

head/bodyクラスの管理バー/ CSSを削除する

show_admin_bar(false);

または単にあなたがしたい場合:<head>内のhtml margin-top CSSを削除する

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

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

1
l2aelba

私は最近これをしなければなりませんでした、私はちょうど(管理バーのための)WordPressのデフォルトのインライン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' );
0
andxyz