新しく開発したプラグインの管理メニューを既存のプラグインにサブメニューとして追加したいと思います。これは可能でしょうか?
私の最初のプラグインでは、私は次のようにメニューを初期化します。
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') );
}
2番目のプラグインのコード:
function admin_menu () {
add_submenu_page( 'menu-top-level-handle', 'Lexikon', 'Lexikon', 'manage_options', 'lexikon-edit', array($this , 'lexikon_settings_page') );
}
それから私は私の2番目のプラグインで以下を試みました、しかしページは間違って代わりにリダイレクトされます:admin.php?page=sub_page
は/sub_page
にリダイレクトします。
問題をシミュレートしようとしても、同じことが起こり(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>';
}