管理画面でツールバー(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)を強制的に表示/非表示する

お勧めコンテンツ

get_the_archive_description(2014年12月23日 登録)

string get_the_archive_description()
アーカイブページの説明を取得する。

wp_set_current_user(2011年6月21日 登録)

WP_User wp_set_current_user( int $id [ , string $name = '' ] )
パラメータ$idで指定されたユーザ情報を新しい現在のユーザ情報として設定する。

get_the_posts_pagination(2014年12月25日 登録)

string get_the_posts_pagination( [ array $args = array() ] )
アーカイブページ向けのページ番号ナビゲーションを取得する。

wp_basename(2013年2月7日 登録)

string wp_basename( string $path [ , string $suffix = '' ] )
ベース名(パスの最後にある名前の部分)を取得する。

get_http_origin(2014年10月29日 登録)

string get_http_origin()
リクエスト元のオリジンを取得する。

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