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にて確認

wordpress公式:ユーザーの種類と権限

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です