WEBOPIXEL

WordPress3.1で追加された管理バー(Admin Bar)をカスタマイズする

Posted: 2011.04.12 / Category: WordPress / Tag: 

Wordpress3.1になり新しく上部に管理バー(Admin Bar)呼ばれるナビゲーションが表示されるようになりました。
この管理バーを非表示にしたり各ボタンの追加や削除などを行う方法をご紹介いたします。

Sponsored Link

管理バーの表示・非表示

管理バーの表示・非表示は管理画面から簡単に切り替えることができます。
「ユーザー」メニューから「あなたのプロフィール」を選択すると「個人設定」の欄に「管理バーの表示」という項目があります。

管理画面での管理バーの表示設定

サイト内だけに表示させるか、ダッシュボードだけに表示させるかなどの設定ができます。
両方非表示にする場合は二つともチェックを外します。

functions.phpで非表示にする

その他にもコードを記述することにより非表示にすることができます。
現在使用しているテーマフォルダの「functions.php」に以下のコードを追加します。
「functions.php」がなければ新たに作成しましょう。

functions.php

 
			add_filter( 'show_admin_bar', '__return_false' );
		

これで管理画面での設定の有無に関わらず、管理バーは非表示になります。

管理バーの位置を下部に移動

通常は上部に配置してある管理バーですがcssを追加することで下部に配置できます。

functions.php

 
	function stick_admin_bar_to_bottom_css() {
		   echo "
		   <style type='text/css'>
		   html {
				 padding-bottom: 28px !important;
		   }
		   body {
				 margin-top: -28px;
		   }
		   #wpadminbar {
				 top: auto !important;
				 bottom: 0;
		   }
		   #wpadminbar .quicklinks .menupop ul {
				 bottom: 28px;
		   }
		   </style>
		   ";
	}
	add_action('admin_head', 'stick_admin_bar_to_bottom_css');
	add_action('wp_head', 'stick_admin_bar_to_bottom_css');
	

メニューボタンの削除

このボタンだけはいらない! っていうときのためのボタン削除方法です。
次のコードでは「コメント」と「更新」ボタンを削除しています。

functions.php

 
	function mytheme_admin_bar_render() {
		global $wp_admin_bar;
		$wp_admin_bar->remove_menu('updates');
		$wp_admin_bar->remove_menu('comments');
	}
	add_action( 'wp_before_admin_bar_render', 'mytheme_admin_bar_render' );
	

「remove_menu」に削除したいボタンを指定します。
指定する文字列はソースコードのリストの「id」になっているようです。

my-account
my-account-with-avatar
一番左のアカウント
new-content 新規追加
comments コメント
appearance 外観
updates 更新

メニューボタンの追加

今度はボタンの追加です。
たとえば新たに「メディア」というボタンを作成して、そのサブメニューに「メディアのアップロード」ボタンを作る場合は次のようになります。

functions.php

 
	function mytheme_admin_bar_render() {
		global $wp_admin_bar;
			$wp_admin_bar->add_menu( array(
				'id' => 'upload',
				'title' => 'メディア',
				'href' => admin_url( 'upload.php')
			));
			$wp_admin_bar->add_menu( array(
				'parent' => 'upload',
				'id' => 'media-new',
				'title' => 'メディアのアップロード',
				'href' => admin_url( 'media-new.php')
			));
	}
	add_action( 'wp_before_admin_bar_render', 'mytheme_admin_bar_render' );
	

「href」は移動した管理画面のアドレスバーに表示されているファイル名を指定します。

元記事はこちら

What Everybody Ought to Know about the WordPress Admin Bar