重複するメインを削除-管理者のサブメニュー?


11

add_menu_page&を使用add_submenu_pageしてメニュー項目を追加すると、

add_menu_page( 'Forms', 'Forms', 'administrator', 'forms', 'forms_job_menupage_cb' );
add_submenu_page( 'forms', 'Job Applications', 'Job Applications', 'administrator', 'job-applications', 'forms_job_menupage_cb' );
add_submenu_page( 'forms', 'Quote Requests', 'Quote Requests', 'administrator', 'quote-req', 'forms_req_menupage_cb' );
add_submenu_page( 'forms', 'Contact', 'Contact', 'administrator', 'contact', 'forms_contact_menupage_cb' );

私は何かのようになります

  • フォーム
    • フォーム
    • 求人応募
    • 見積もり依頼
    • 連絡先

なるように作成することは可能ですか

  • フォーム
    • 求人応募
    • 見積もり依頼
    • 連絡先

言い換えれば、フォームは求人応募にリンクし、余分なフォームサブメニュー項目は必要ありません。

回答:


10

こんにちは@JM at Work:

はい、残念ながら、すべてのメニューページにサブメニューページが追加されています。オプションがあればいいのですが、悲しいかな、現在はありません

WordPress 3.1のサブメニューページオプションを削除するか、次のremove_submenu_page()ようなコードをテーマのfunctions.phpファイルまたは.phpプラグインのファイルで使用して、作成している可能性があります。

add_action( 'admin_menu', 'yoursite_admin_menu' );
function yoursite_admin_menu() {
  add_menu_page( 'Forms', 'Forms', 'administrator', 'forms', 'forms_job_menupage_cb' );
  add_submenu_page( 'forms', 'Job Applications', 'Job Applications', 'administrator', 'job-applications', 'forms_job_menupage_cb' );
  add_submenu_page( 'forms', 'Quote Requests', 'Quote Requests', 'administrator', 'quote-req', 'forms_req_menupage_cb' );
  add_submenu_page( 'forms', 'Contact', 'Contact', 'administrator', 'contact', 'forms_contact_menupage_cb' );
  remove_submenu_page('forms','forms');
}

まだWordPress 3.0を使用している場合unset()は、次の$submenuようなグローバル変数の要素が必要です。

add_action( 'admin_menu', 'yoursite_admin_menu' );
function yoursite_admin_menu() {
  add_menu_page( 'Forms', 'Forms', 'administrator', 'forms', 'forms_job_menupage_cb' );
  add_submenu_page( 'forms', 'Job Applications', 'Job Applications', 'administrator', 'job-applications', 'forms_job_menupage_cb' );
  add_submenu_page( 'forms', 'Quote Requests', 'Quote Requests', 'administrator', 'quote-req', 'forms_req_menupage_cb' );
  add_submenu_page( 'forms', 'Contact', 'Contact', 'administrator', 'contact', 'forms_contact_menupage_cb' );
  unset($GLOBALS['submenu']['forms'][0]);
}

多くの感謝........... :)
Ridwan Pujakesuma

1

add_submenu_pageを削除する必要がありました(wp 4.0.1)

add_menu_page( 'Admin Tools', 'Admin Tools', 'manage_options','parent', '__return_null','', "70.23423" );
    // this 'hides' the extra.  actually, just makes the text nothing: ''  
    add_submenu_page( 'parent', '',     '', 'manage_options',   'parent',   '__return_null' );
    //ah, but this removes it completely (you need to add it, then remove it :/     
    remove_submenu_page('parent','parent');

1

他のすべてのWPメニューが機能する方法であるため、追加のメニュー項目を保持することをお勧めします。(私はそれがあなたが尋ねたものではないことを知っています!...)他のトップレベルのメニューが機能する方法は、それらが大きなメニュータイトルとその下の重複するタイトルに異なるラベルを持っていることです(例えば 'Users'、 'All Users'; 「ツール」、「利用可能なツール」)。同じパラダイムを使用するのが良いと思うので、通常、最初のサブメニュー項目の名前を次のように変更します。

<?php
add_menu_page( 'Plugin Name', 'Plugin Name', 'read', 'plugin-slug', $callback );
add_submenu_page( 'plugin-slug', 'Plugin Overview', 'Overview', 'read', 'plugin-slug', $callback );

1

親メニューと同様の最初のサブメニュースラグを割り当てます。あなたのケースでは、「job-applications」をメインメニューの「フォーム」のスラッグに置き換えます。

add_menu_page( 'Forms', 'Forms', 'administrator', 'forms', 'forms_job_menupage_cb' );
add_submenu_page( 'forms', 'Job Applications', 'Job Applications', 'administrator', 'forms', 'forms_job_menupage_cb' );
add_submenu_page( 'forms', 'Quote Requests', 'Quote Requests', 'administrator', 'quote-req', 'forms_req_menupage_cb' );
add_submenu_page( 'forms', 'Contact', 'Contact', 'administrator', 'contact', 'forms_contact_menupage_cb' );
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.