2011-03-01

WordPress 3.1で追加された管理バーを非表示にする方法

WordPress 3.1がリリースされ、ログイン中にはサイトに管理バーが表示されるようになりました。

管理バー

この機能が不要な場合は、管理画面のプロフィール設定から表示・非表示を切り替えられます。

プロフィール設定

毎回この設定を変更するのは面倒

ユーザーが1人の場合などは一回設定をすればいいですが、複数のサイトのユーザーについて毎回管理バーを非表示にするためにポチポチしていくのは面倒です。

WordPress Codex に管理バーを非表示にする方法が書いてあったので、このサイトで試してみました。
functions.php に以下の記述を追加するだけで一括で非表示にできます。

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

もっと単純に以下の1文でも非表示にできました。

add_filter( 'show_admin_bar', '__return_false' );

この方法で非表示にすることはできたのですが、functions.php を更新したあとに管理画面からログアウト→再ログインしないと設定が反映されませんでした。
僕の環境だけかもしれませんが、うまくいかなかった場合はログアウト→再ログインしてみてください。

なお、管理者でログインしている場合のみ表示するようにしたい場合は以下のようにすればよいそうです。

function my_function_admin_bar($content) {
  return ( current_user_can("administrator") ) ? $content : false;
}
add_filter( 'show_admin_bar' , 'my_function_admin_bar');

参照:Plugin API/Filter Reference/show admin bar « WordPress Codex

管理画面からも消し去るには

先の方法で管理バーを非表示にすることができますが、管理画面には設定項目が残っています。
ここにチェックを入れても表示されませんが、不要な項目なのでこちらも非表示にしてしまいます。

add_action( 'admin_print_styles-profile.php', 'disable_admin_bar_prefs' );
function disable_admin_bar_prefs() { ?>
  <style type="text/css">
    .show-admin-bar { display: none; }
  </style><?php
}

ちょっと強引な感じですが、表示されているメニューを display: none; で消してます。
こちらはよりいい方法が見つかれば、こちらの記事も修正したいと思います。