最初のサブメニュー項目に異なる名前のadd_menu_page()


83

add_menu_pageドキュメントには、 2番目のパラメータとしてメニュータイトルを渡すために言います:

add_menu_page('Page Title', 'Menu Title', ...);

後でページを追加するときadd_submenu_pageに、メインページがサブメニューの最初のエントリになります。

ここに画像の説明を入力してください


ただし、リストの最初のアイテムには別の名前を付けます(ただし、同じページを指します)。これは、Wordpress自体の方法です。

ここに画像の説明を入力してください


プラグインでそれをどのように達成できますか?


回答:


112

サブメニューページの「スラッグ」をトップレベルページの「スラッグ」と同じにすることができ、それらは同じ場所を指します。

add_action('admin_menu', 'my_menu_pages');
function my_menu_pages(){
    add_menu_page('My Page Title', 'My Menu Title', 'manage_options', 'my-menu', 'my_menu_output' );
    add_submenu_page('my-menu', 'Submenu Page Title', 'Whatever You Want', 'manage_options', 'my-menu' );
    add_submenu_page('my-menu', 'Submenu Page Title2', 'Whatever You Want2', 'manage_options', 'my-menu2' );
}

例えば

ここに画像の説明を入力してください


これにより、Wordpressはメインページのサブメニューページを自動的に作成するため、エントリが重複します。
メガヒット

4
先週、コアコードをざっと目を通し、「デフォルトのサブメニュー項目をユーザーが既にお持ちでない場合」というようなメモに出くわしたことを覚えています。最上位の項目を指すサブメニュー項目があるかどうかを確認します。存在する場合、デフォルトは追加されません。
マイケルルイス

カスタムメニューを作成するときに、いくつかのテーブルとデータを表示したいです。他のタブにはチュートリアルリンクが表示されるか、機能に関するヘルプが表示されます
Aitazaz Khan

まさに私が探していたもの。ありがとう:P
ロブDA

-3
add_submenu_page(
        'tut_theme_settings',       // parent slug
        'Front Page Elements 2',    // page title
        'Front Page 2',             // menu title
        'manage_options',           // capability
        'tut_theme_settings2',      // slug
        'theme_front_page_settings' // callback
    ); 

最初のサブメニューの異なる名前が親と最初の子の同じスラッグを作成し、同じ関数を呼び出す場合


2
受け入れられている答えとどう違うのですか?そして、どのアクションにこれをフックする必要があります。
-bravokeyl

-4

これを追加するだけです:

$submenu['my-menu'][0][0] = 'My New Menu Title';

デバッグの目的で、a print_r($menu)を実行してWPメニュー全体を確認できます。


7
ハックハック。APIを使用してください!
リチャードスウィーニー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.