私はwordpress用のカスタムプラグインを書きました。
サブメニューをプラグインに追加すると、トップレベルの項目に二重のエントリが表示されます。
2番目の "TopLevel"メニュー項目を無効にして、次のように表示します。
それで、トップレベルサブメニューを無効にするにはどうすればいいですか?
あなたが 'TopLevel'メニューがカスタムページを表すことを望まないならば、あなたは使うことができます:
add_menu_page( 'TopLevel', 'TopLevel', 'MENU_CAP_LVL', 'MENU_SLUG', 'MENU_CB' );
add_submenu_page( 'MENU_SLUG', 'SubMenu', 'SubMenu', 'MENU_CAP_LVL', 'SUB_MENU_SLUG', 'SUB_MENU_CB' );
add_submenu_page( 'MENU_SLUG', 'SubMenu-A', 'SubMenu-A', 'MENU_CAP_LVL', 'SUB_MENU_A_SLUG', 'SUB_MENU_A_CB' );
remove_submenu_page('MENU_SLUG','MENU_SLUG');
このようにして "TopMenu"をクリックすると、最初の "SubMenu"に進み、 "TopLevel"が重複しないようにします。
別の解決策は、page_slug
で使用されているのと同じmenu_slug
、add_menu_page
、function
(コールバック)を持つサブメニューエンティティを追加することによって、サブメニュー内の "TopLevel"ラベルの名前を変更することです。
add_menu_page( 'TopLevel', 'TopLevel', 'MENU_CAP_LVL', 'MENU_SLUG', 'MENU_CB' );
add_submenu_page( 'MENU_SLUG', 'MyRenamedTopLevelMenu', 'MyRenamedTopLevelMenu', 'MENU_CAP_LVL', 'MENU_SLUG', 'MENU_CB' );
add_submenu_page( 'MENU_SLUG', 'SubMenu', 'SubMenu', 'MENU_CAP_LVL', 'SUB_MENU_SLUG', 'SUB_MENU_CB' );