WordPressで管理者専用のメニューをダッシュボードに追加する方法

WordPressで管理者専用のメニューをダッシュボードに追加する方法

Kazuya Takato

Kazuya Takato

 WordPressでプラグインを作ってて、オリジナルのメニューを管理画面に追加したい時、普通なら↓のようにします。

// admin_menuにフックする
add_action('admin_menu', 'menu_test');
// フックの中身
function menu_test(){
	add_menu_page("TEST", "TEST", "edit_plugins",  __FILE__, "menu_test_body");
}
// メニューがクリックされた時に動く
function menu_test_body(){
	echo 'TEST';
}

admin_1 メニュー「TEST」が追加されました。でもこれだとネットワーク管理者のダッシュボードにでないのです。 admin_2 マルチサイトにすることはあんまりないんだけど、ネットワーク管理者しか使えな い機能を作ったのだから、どうせならネットワーク管理者のダッシュボードに出したいなぁと思って、四苦八苦しました。 無理なのかなぁと思ってあきらめかけてたんですが、よく見たらQuick Cacheさんが出してらっしゃいました。 さっそくコードを見てみると、/quick-cache/includes/classes/menu-pages.inc.phpに add_network_admin_options()なんて関数が。でもやってることはあんまり変わりません。

add_menu_page ("Quick Cache", "Quick Cache", "edit_plugins", "ws-plugin--qcache-options", "c_ws_plugin__qcache_menu_pages::options_page");

じゃあフックしてるところかなと思って探すとhooks.inc.phpには下記のように。

add_action ("network_admin_menu", "c_ws_plugin__qcache_menu_pages::add_network_admin_options");

これかと思って試すと・・・

add_action('network_admin_menu', 'menu_test');
function menu_test(){
	add_menu_page("TEST", "TEST", "edit_plugins",  __FILE__, "menu_test_body");
}
function menu_test_body(){
	echo 'TEST';
}

admin_3 無事出力されました。 以上、WordPressでネットワーク管理者専用のメニューを追加する方法でした。

LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。

Webサイト制作の実績・料金を見る

この記事のシェア数

1983年生まれ。SIerとしてのキャリアをスタートし、JavaやC#を中心に多岐にわたる開発プロジェクトにエンジニアとして参加。その経験を活かし、LIGを創業。バックエンドおよびフロントエンドエンジニアとしての深い知識と経験をもとに、多様なプロジェクトに従事。2023年7月には社長室室長に就任にし、社内の体制やルールの最適化、AI技術の推進など、経営戦略の一翼を担っています。

このメンバーの記事をもっと読む
デザイン力×グローバルな開発体制でDXをトータル支援
お問い合わせ 会社概要DL