wordpressの管理画面にオリジナルメニューを追加する(外部リンクとか)
wordpressの管理画面にオリジナルメニューを追加する(外部リンクとか)にはfunctions.phpでadd_menu_pageを追加する
下記コードは例
/** * 外部リンク用のメニューを追加 */ add_action('admin_menu', 'custom_menu_page'); function custom_menu_page() { add_menu_page('外部リンク用ページ', '外部リンク用ページ', 'manage_options', 'custom_menu_page', 'add_custom_menu_page', ' dashicons-admin-generic', 10); add_action('admin_init', 'register_custom_setting'); } function add_custom_menu_page() { ?> <div class="wrap"> <h2>外部リンク用ページ</h2> <div class="metabox-holder"> <div class="postbox "> <h3 class='hndle'><span>Yahoo</span></h3> <div class="inside"> <div class="main"> <p class="setting_description">YahooJapanを開く</p> <p><a href="https://www.yahoo.co.jp" target="_blank">ページを開く</a></p> </div> </div> </div> <div class="postbox "> <h3 class='hndle'><span>Google</span></h3> <div class="inside"> <div class="main"> <p class="setting_description">Google検索を開く</p> <p><a href="https://www.google.com" target="_blank">ページを開く</a></p> </div> </div> </div> </div> </form> </div> <?php }
add_menu_pageの要素は以下の通り
add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position );
- $page_title=ページを開いた時のタイトル
- $menu_title=メニュー上のタイトル
- $capability=このメニューが表示されるべきユーザの権限(manage_optionsは管理者、編集者にしたい場合はmoderate_commentsを指定)
- $menu_slug=メニューのスラッグ
- $function=呼び出す関数、例ではadd_custom_menu_page関数が呼ばれている
- $icon_url=メニュー上に表示させるアイコンのイメージ
- $position=このメニューを表示させる位置順番
メニューの中にサブメニューを作成
先程のメニューは管理ページの左メニュー上にメニューを追加する方法だったが、メニューの中にサブメニューを作成したい場合はadd_submenu_page関数をfunctions.php上で使用する
メニューを追加するコードは
add_action('admin_menu', 'add_custom_submenu_page'); function add_custom_submenu_page() { add_submenu_page('custom_menu_page', 'サブメニュー1', 'サブメニュー1', 'moderate_comments', 'custom_submenu_page_1', 'add_custom_menu_page_1', 1); add_submenu_page('custom_menu_page', 'サブメニュー2', 'サブメニュー2', 'read', 'custom_submenu_page_2', 'add_custom_menu_page_2', 2); } function add_custom_menu_page_1() { ?> <!--サブメニュー1を開いた時のHTMLコードを記述--> <?php } function add_custom_menu_page_2() { ?> <!--サブメニュー2を開いた時のHTMLコードを記述--> <?php }
add_menu_page関数の各設定項目は下記となる
add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position );
add_menu_page( $page_title : ページタイトル(title), $menu_title : メニュータイトル, $capability : メニュー表示するユーザーの権限, $menu_slug, : メニューのスラッグ, $function, : メニュー表示時に使われる関数, $icon_url, : メニューのテキスト左のアイコン, $position : メニューを表示する位置; );
ちなみに上記例ではadd_custom_menu_page_1はmoderate_comments(編集者以上)、add_custom_menu_page_2はread(購読者以上)の権限で見れるようになっている。
各権限の詳細情報は公式URLにて確認