从插件中删除所有子菜单

时间:2014-03-09 作者:user759235

有没有办法一次取消注册所有子菜单,而不是使用下面的代码?

remove_submenu_page(\'myplugin\', \'sub-page-1\'); 
remove_submenu_page(\'myplugin\', \'sub-page-2\'); 
remove_submenu_page(\'myplugin\', \'sub-page-3\'); 
remove_submenu_page(\'myplugin\', \'sub-page-4\'); 
remove_submenu_page(\'myplugin\', \'sub-page-5\');
...
... 
想法是。。。

remove_submenu_page(\'myplugin\', all);??? 

1 个回复
最合适的回答,由SO网友:Stephen Harris 整理而成

不接触全球$submenu 直接(我不建议这样做-通常,仅使用故意公开的API可以提供更好的稳定性)。

但是,如果您希望函数删除所有子菜单:

/**
 * Removes all submenus of given menu item
 *
 * @param string $menu_slug The slug of the parent menu to remove submenus of
 */
function wpse137406_remove_submenus( $menu_slug ) {
    global $submenu;

    if ( isset( $submenu[$menu_slug] ) ){
         unset( $submenu[$menu_slug] );
    }
}

结束