管理画面でツールバー(Admin bar)を非表示にする

管理画面でツールバー(Admin bar)を非表示にする - ちょっと特殊な管理画面の話

説明

WordPress使ってちょっと変わったサイトを構築する際、管理画面のツールバーを表示させたくないケースがある。一般に公開するサイト側であれば、show_admin_bar関数で非表示にできるのだが、管理画面ではこれを使ってもツールバーは消えてくれない。

困った時はソースコードを見る。

今回注目したのはis_admin_bar_showing関数。名前の通りツールバーを表示するか調べる関数で、この関数の中ではis_admin関数にて管理者がログインしていれば必ずtrueを返して、ツールバーを表示させている。また、is_admin関数でチェックする前に、'XMLRPC_REQUEST'、DOING_AJAX'、'IFRAME_REQUEST'のいずれかが定義されていれば必ずfalseを返すようになっている。

この情報をもとにこれらの中でいちばん影響がなさそうな'IFRAME_REQUEST'を事前に定義することで、ツールバーが見事に表示されなくなった。具体的な対応としては、使用しているテーマのfunctions.phpに次のコードを追加すればいい。

if ( !function_exists( 'mytheme_init' ) ) {
	add_action( 'init', 'mytheme_init' );
	function mytheme_init() {
		define( 'IFRAME_REQUEST', 1 );
	}
}

管理画面のツールバーはIDが'wpadminbar'なので、JavaScriptで非表示にする方法もあるわけだが、こちらの方法のほうがルツールバー表示に関わる処理を省けるメリットがある。
まあ、かなり特殊なケースなんだけどね。

関連

  • is_admin - リクエストページが管理者ページか調べる
  • is_admin_bar_showing - ツールバー(admin bar)の表示状態を調べる
  • show_admin_bar - ツールバー(admin bar)を強制的に表示/非表示する

お勧めコンテンツ

comments_open(2010年3月8日 登録)

bool comments_open( [ mixed $post_id = NULL ] )
投稿ページ(情報)がコメント投稿を許可しているかを調べる。

wp_send_json_success(2012年12月12日 登録)

void wp_send_json_success( mixed $response, int $status_code = null )
AJAXリクエストの成功レスポンスとしてJSON情報を返す。

single_term_title(2011年8月31日 登録)

string single_term_title( [ string $prefix = '' [ , bool $display = true ] ] )
アーカイブページのタクソノミー名(カテゴリー、投稿タグ、その他のタクソノミー)を取得し、パラメータ$displayがtrueならば表示する。$displayがfalseの場合は、文字列として返す。

sanitize_hex_color_no_hash(2012年6月14日 登録)

string sanitize_hex_color_no_hash( $color )
'#'のついていない16進数のカラー値をサニタイズする。

wp_slash(2013年8月2日 登録)

mixed wp_slash( mixed $value )
スラッシュでクォートする。

最終更新日時 : 2013-03-05 11:38