wp プラグインの作成9 サブメニューを作成2(自作の親メニュー)

2013/05/17

wordpressでのプラグインの作成9。自作した親メニューの下にサブメニューを追加したい。

おおざっぱに

親メニュー(トップレベルメニュー)を作成して、サブメニューを作成する。

サンプル1

<?php
/**
* @package testZebra
* @version 1.0
*/
/*
Plugin Name: メニュー系
Plugin URI: https://tips.recatnap.info/
Description: メニューの設置関連
Author: 丸ごとシマウマ
Version: 1.0
Author URI: https://tips.recatnap.info/
*/

class menuSample {
  function __construct() {
    add_action('admin_menu', array($this, 'add_pages'));
  }
  
  function add_pages() {
    // 親メニュー作成
    add_menu_page('親pageTitle1', '親menu名1', 8, __FILE__, array($this, 'menuP'));
    
    // 作成した親メニューにサブメニュー追加(ひとつめ)
    add_submenu_page(__FILE__, '子pageTitle1', '子menu名1', 8, 'menuC1', array($this, 'menuC1'));
    
    // 作成した親メニューにサブメニュー追加(ふたつめ)
    add_submenu_page(__FILE__, '子pageTitle2', '子menu名2', 8, 'menuC2', array($this, 'menuC2'));
  }
  
  function menuP() {
    echo '<div id="icon-options-general" class="icon32"><br /></div><h2>親ページが表示</h2>' . "\n";
  }
  
  function menuC1() {
    echo '<div id="icon-options-general" class="icon32"><br /></div><h2>子ページ1が表示</h2>' . "\n";
  }
  
  function menuC2() {
    echo '<div id="icon-options-general" class="icon32"><br /></div><h2>子ページ2が表示</h2>' . "\n";
  }
}

$tmpMenuSample = new menuSample();
?>

この場合だと、下記のような感じのになる。

– ダッシュボート
(中略)
– 設定
– 親menu名1
 - 親menu名1
 - 子menu名1
 - 子menu名2

サンプル2

サブメニューに親が表示されるのがイヤ。下記のように変更したい。

– ダッシュボート
(中略)
– 設定
– 親menu名1
 - 子menu名1
 - 子menu名2

▼サンプル

<?php
/**
* @package testZebra
* @version 1.0
*/
/*
Plugin Name: メニュー系
Plugin URI: https://tips.recatnap.info/
Description: メニューの設置関連
Author: 丸ごとシマウマ
Version: 1.0
Author URI: https://tips.recatnap.info/
*/

class menuSample {
  function __construct() {
    add_action('admin_menu', array($this, 'add_pages'));
  }
  
  function add_pages() {
    // 親メニュー作成
    add_menu_page('親pageTitle1', '親menu名1', 8, __FILE__, array($this, 'menuP'));
    
    // 作成した親メニューにサブメニュー追加(ひとつめ)
    add_submenu_page(__FILE__, '子pageTitle1', '子menu名1', 8, '__FILE__', array($this, 'menuC1'));
    
    // 作成した親メニューにサブメニュー追加(ふたつめ)
    add_submenu_page(__FILE__, '子pageTitle2', '子menu名2', 8, 'menuC2', array($this, 'menuC2'));
  }
  
  function menuP() {
    echo '<div id="icon-options-general" class="icon32"><br /></div><h2>親ページが表示</h2>' . "\n";
  }
  
  function menuC1() {
    echo '<div id="icon-options-general" class="icon32"><br /></div><h2>子ページ1が表示</h2>' . "\n";
  }
  
  function menuC2() {
    echo '<div id="icon-options-general" class="icon32"><br /></div><h2>子ページ2が表示</h2>' . "\n";
  }
}

$tmpMenuSample = new menuSample();
?>

この場合だと「親menu名1」と「子menu名1」のどちらをクリックしても表示されるページは「menuP()」と「menuC1()」の実行結果。
だから、「menuP()」の中身を空白にしとくってのもいいかも。

新着(ニュース関連以外)

2018-07-26
年賀状で「新春」とか書くけど・・・何故なんだろうと8月を目前にした今、疑問に思った。
2018-05-16
PHPで画像のヘッダ情報(?)の「Orientation」を元に画像回転させたい。
2018-03-05
Android Studioをインストール。エミュレータを軽くするトコまで終わらせたかったけど、挫折した。
2018-02-23
プッシュ通知について調べてた時にでてきたServiceWorker。そのServiceWorkerについてのメモ。
2017-12-13
jqueryで取得したDOM要素をオブジェクトじゃなくて、配列で受け取りたい