当前类在管理菜单上使用add_submenu_page()
-
16-10-2019 - |
题
我正在努力在WordPress中为插件创建管理菜单。我已经使用add_menu_page()成功注册了菜单,并按预期在侧边栏中显示。我还使用add_submenu_page()在菜单中添加了几个部分。
看来WordPress(运行3.05)未正确指示应将哪个菜单项激活为“当前”。
当我将测试页面添加到主仪表板菜单时,这就是我看到的:
http://dl.dropbox.com/u/3019972/wp-screen1.png
如您所见,当前页面在菜单中在视觉上是正确的,并给出了一类“当前”。但是,在我自己的菜单上看起来像这样:
http://dl.dropbox.com/u/3019972/wp-screen2.png
在此示例中,我希望“仪表板”突出显示。
这仅仅是WordPress错误吗?还是我需要提供特殊的代码以在我自己的菜单中进行此工作?
使用代码示例更新
我正在使用用于添加和创建菜单的代码看起来像这样:
add_action('admin_menu','my_admin_menu');
function my_admin_menu() {
// this test works as expected
// add_submenu_page( 'index.php', 'test', 'test', 'read', 'admin.php?page=plugin-dashboard','my_pluggin_dashboard' );
// my main menu menu
add_menu_page(__('My Plugin', 'myplugin'),__('My Plugin', 'myplugin'), 'edit_posts','admin.php?page=plugin-dashboard','my_plugin_dashboard','icon');
// dashboard submenu - this fails to highlight with current
add_submenu_page('admin.php?page=plugin-dashboard', __('Dashboard','myplugin'), __('Dashboard','myplugin'), 'edit_posts', 'admin.php?page=plugin-dashboard', 'my_plugin_dashboard' );
// settings submenu - this fails to highlight with current
add_submenu_page('admin.php?page=plugin-dashboard', __('Settings','myplugin'), __('Settings','myplugin'), 'manage_options', 'admin.php?page=my-plugin-settings', 'my_plugin_settings' );
}
我已经评论了有效的代码和不预期的代码。感谢您的意见。
解决方案
尝试这个:
add_menu_page(__('My Plugin', 'myplugin'),__('My Plugin', 'myplugin'), 'edit_posts','my-plugin-dashboard','my_plugin_dashboard','icon');
// dashboard submenu - this fails to highlight with current
add_submenu_page('my-plugin-dashboard', __('Dashboard','myplugin'), __('Dashboard','myplugin'), 'edit_posts', 'my-plugin-dashboard', 'my_plugin_dashboard' );
// settings submenu - this fails to highlight with current
add_submenu_page('my-plugin-dashboard', __('Settings','myplugin'), __('Settings','myplugin'), 'manage_options', 'my-plugin-settings', 'my_plugin_settings' );
本质上:不要将全页链接使用admin.php?...作为页面slug。特别是如果您要通过回调,只需使用slug而不是页面地址即可。