wp プラグインの作成9 サブメニューを作成2(自作の親メニュー)
wordpressでのプラグインの作成9。自作した親メニューの下にサブメニューを追加したい。
おおざっぱに
親メニュー(トップレベルメニュー)を作成して、サブメニューを作成する。
サンプル1
/**
* @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
▼サンプル
/**
* @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()」の中身を空白にしとくってのもいいかも。