我想将我新开发的插件的管理菜单添加到现有插件的子菜单中。有可能做到这一点吗?
在我的第一个插件中,我初始化菜单如下:
function add_pages() {
// Add a new top-level menu (ill-advised):
add_menu_page(__(\'MyMenu\',\'menu-test\'), __(\'MyMenu\',\'menu-test\'), \'manage_options\', \'menu-top-level-handle\', array ($this , \'menu_toplevel_page\' ) );
// Add a second submenu to the custom top-level menu:
add_submenu_page(\'menu-top-level-handle\', __(\'Test Submenu\',\'menu-test\'), __(\'Test Submenu\',\'menu-test\'), \'manage_options\', \'sub_page_test\', array($this , \'test_sublevel_page2\') );
}
第二个插件中的代码:
function admin_menu () {
add_submenu_page( \'menu-top-level-handle\', \'Lexikon\', \'Lexikon\', \'manage_options\', \'lexikon-edit\', array($this , \'lexikon_settings_page\') );
}
然后,我在第二个插件中尝试了以下操作,但页面重定向错误:
admin.php?page=sub_page
重定向到
/sub_page
.
最合适的回答,由SO网友:brasofilo 整理而成
试图模拟这个问题,结果也是一样(wp-admin/submenu_slug
), 解决方案是在挂钩中添加一个优先级值admin_menu
.
在这里,我为插件添加了一个子菜单BackWPup. 注意优先级11
:
add_action(\'admin_menu\', \'third_party_submenu_wpse_91377\', 11 );
function third_party_submenu_wpse_91377()
{
add_submenu_page(
\'backwpup\', // Third party plugin Slug
\'My plugin\',
\'My plugin\',
\'delete_plugins\',
\'third_party_submenu\',
\'plugin_options_wpse_wpse_91377\'
);
}
function plugin_options_wpse_wpse_91377()
{
echo \'<h1>OK</h1>\';
}