はじめに

管理画面上部に表示される「ツールバー(admin bar)」のメニューを削除・追加します(図1参照)。
この記事では、この方法について説明します。
メニュー構成とID一覧
表1にメニュー構造とそれぞれのメニューIDを示します。
| # | メイン | サブ | メニューID |
|---|---|---|---|
| 1 | WordPressロゴ | wp-logo | |
| WordPressについて | about | ||
| 参加する | contribute | ||
| WordPress.org | wporg | ||
| ドキュメンテーション | documentation | ||
| Lean WordPress | learn | ||
| サポート | support-forums | ||
| フィードバック | feedback | ||
| 2 | サイト名 | site-name | |
| サイトを表示 | view-site | ||
| 3 | コメント | comments | |
| 4 | 新規 | new-content | |
| 投稿 | new-post | ||
| メディア | new-media | ||
| リンク | new-link | ||
| 固定ページ | new-page | ||
| ユーザー | new-user | ||
| 5 | 管理メニュー | (Cocoon用) | dashboard_menu |
| 6 | こんにちはユーザーさん | my-account | |
| プロフィールを編集 | user-info | ||
| ログアウト | logout |
メニューを削除する方法
実装手順
以下のコードをfunctions.phpに追加します。
対象メニューIDを指定することで不要な項目を非表示にできます。
add_action('admin_bar_menu', function ($wp_admin_bar) {
$wp_admin_bar->remove_node('wp-logo');
$wp_admin_bar->remove_node('dashboard_menu');
}, 10000);
メニューを追加する方法
完成イメージ

実装手順
以下のコードをfunctions.phpに追加します。
add_action('admin_bar_menu', function ($wp_admin_bar) {
// 親メニューを追加
$wp_admin_bar->add_node([
'id' => 'custom-parent', // 任意のID
'title' => 'カスタム親メニュー', // タイトル
'href' => 'https://example.com/', // リンクURL
]);
// 子メニュー1を追加
$wp_admin_bar->add_node([
'parent' => 'custom-parent', // 親メニューID
'id' => 'custom-child-1',
'title' => '子メニュー1',
'href' => 'https://example.com/',
]);
// 子メニュー2を追加
$custom_child2 = '<span style="color:orange;">子メニュー2</span>';
$wp_admin_bar->add_node([
'parent' => 'custom-parent',
'id' => 'custom-child-2',
'title' => $custom_child2,
'href' => 'https://example.com/',
]);
}, 31);
補足
既存のメニューにサブメニューを追加する場合、add_node()を呼び出した順に、既存のサブメニューの末尾に追加されます。
親メニューの表示位置は、admin_bar_menu()フックの第3引数(優先度)によって決まります。
また、titleには HTMLを含めることも可能です(図2参照)。
さいごに
今回紹介した方法を使えば、管理画面上部にあるツールバーのメニューを自由にカスタマイズできます。
不要な項目を削除したり、独自のリンクを追加したりすることで、管理画面の利便性を高めることができます。
特に頻繁に使う機能や外部ツールへの導線を追加することで、作業効率が向上するでしょう。

