[WordPress] ツールバーをカスタマイズする

WordPress

メモ程度に。3.3.1対応です。

Wロゴを削除する

Wロゴとその下層の「WordPressについて」「WordPress.org」などのメニューは wp-includes/admin-bar.php の関数 wp_admin_bar_wp_menu で定義されています。他のメニューもこのファイルに記載されています。

$wp_admin_bar->add_menu( array(
	'id'    => 'wp-logo',
	'title' => '<span class="ab-icon"></span>',
	'href'  => admin_url( 'about.php' ),
	'meta'  => array(
		'title' => __('About WordPress'),
	),
) );

このようにグローバル関数 $wp_admin_bar から WP_Admin_Bar クラスのメソッド add_menu を使ってメニューを定義しています。wp_admin_bar_wp_menu 関数は同じく WP_Admin_Bar クラスのメソッド add_menus 内でアクションフック admin_bar_menu にフックされています。

add_action( 'admin_bar_menu', 'wp_admin_bar_wp_menu', 10 );

したがって、これ以降のタイミングで同様に admin_bar_menu フックでメニューを取り除けばOKです。メニューを取り除くには remove_menu メソッドを使います。結果的にこのようなコードになりました。

function my_admin_bar_custom( $wp_admin_bar ) {
	$wp_admin_bar->remove_menu( 'wp-logo' );
}
add_action( 'admin_bar_menu', 'my_admin_bar_custom', 15 );

Wメニュー削除前

Wメニュー削除後

独自メニューを追加する

メニューの追加の仕方も、 admin-bar.php を見れば簡単でした。参考に作ってみたメニューがこちら

function my_admin_bar_additional( $wp_admin_bar ) {
	$wp_admin_bar->add_menu( array(
		'id'    => 'my-menu',
		'title' => '追加メニュー',
		'href'  => '#'
	) );

	$wp_admin_bar->add_menu( array(
		'parent'    => 'my-menu',
		'id'        => 'my-menu-sub',
		'title'     => '下層メニュー',
		'href'      => '#'
	) );
}
add_action( 'admin_bar_menu', 'my_admin_bar_additional', 100 );

表示順は100なので、80の編集ボタンの次に表示されます。

WordPressも最近の追加機能はクラス設計されているので、すごく使いやすいですね。

ツールバーをカスタマイズすることで、例えばカスタムヘッダーなどデフォルトのテーマ追加機能以外の機能を追加した際に、そこへのリンクをツールバーに足すことができます。あとは、いつも使うプラグインの管理画面へのショートカットを追加したりとか、色々便利な使い途はありそうです。

関連する記事:

  1. #WordPress ネットワーク内の別ブログの新着情報を表示するウィジェット
  2. #WordPress マルチサイトネットワーク内の全ブログの新着記事を表示する方法
  3. WordPressのパンくずナビゲーション(Breadcrumb NavXT)をカスタマイズする
  4. 実は便利!ショートコードを自作してみよう #WordPress
  5. WordPressで複数のカスタム属性をミックスしたタグクラウドを表示する

関連記事はYARPP関連記事プラグインによって表示されています。

This entry was posted in Web制作Tips and tagged . Bookmark the permalink.