WordPress 管理メニュー、ページの追加

デジタルドリームワークスからHigaです。
これまで数回に分けてWordPress WooCommerceの基本(登録部分)を確認していきました。
少し今回はお休みをしてWordPress管理画面 メニューのカスタマイズについてです。

いずれはWordPressのプラグインを作成してみたいと思います。
そこで設定項目などを追加するなら管理画面へ設定ページを追加する機会も必ず出てきます。
それでは今回試すこと…

今回は手始めですので、管理メニュー、ページの追加のみです。
設定項目の追加や値を保存するのは次回以降に確認します。
それではさっくりいきましょう!

 

● 管理画面へサブレベルメニュー、ページの追加

WordPressは素晴らしいCMSです。もちろんメニューを追加する関数、アクションフックが用意されています。
以下の関数を利用します。

 

アクションフック
「admin_menu」

設定項目へメニューを追加する関数
add_options_page( $page_title, $menu_title, $capability, $menu_slug, $function);

 

161118-pict01

161118-pict02

 

簡単に追加出来ますね。
add_options_page 「設定」メニューへサブレベルメニューを登録する関数ですが、トップレベルメニューへの登録関数も用意されています。

 

ダッシュボード
add_dashboard_page( $page_title, $menu_title, $capability, $menu_slug, $function);

投稿
add_posts_page( $page_title, $menu_title, $capability, $menu_slug, $function);

メディア
add_media_page( $page_title, $menu_title, $capability, $menu_slug, $function);

固定ページ
add_pages_page( $page_title, $menu_title, $capability, $menu_slug, $function);

コメント
add_comments_page( $page_title, $menu_title, $capability, $menu_slug, $function);

外観
add_theme_page( $page_title, $menu_title, $capability, $menu_slug, $function);

プラグイン
add_plugins_page( $page_title, $menu_title, $capability, $menu_slug, $function);

ユーザー
add_users_page( $page_title, $menu_title, $capability, $menu_slug, $function);

ツール
add_management_page( $page_title, $menu_title, $capability, $menu_slug, $function);

 

===================

 

● 管理画面へトップレベルメニュー、ページの追加

アクションフック
「admin_menu」

トップレベルメニューを追加する関数
add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position );

 

161118-pict03

161118-pict04

 

こちらも簡単に追加できますね。
ついでにサブメニューも入れてみましょう!

 

サブメニューを追加する関数
add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function);

 

161118-pict05

161118-pict06

 

さて、管理画面へのメニュー追加を行いました。
プラグインでメニューを追加することも出来るのですが、プラグインを入れ過ぎるとプラグインのバージョンアップや管理が大変なので、
プラグインを利用しなくても出来そうな部分はコードを入れて機能拡張したいと思っています。(個人的見解)

実際に項目を登録する作業は次回に持ち越しです。
間違っている部分や他の方法、関連情報があればぜひコメントいただけると嬉しいです。
それでは!