我正在努力在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而不是页面地址即可。

许可以下: CC-BY-SA归因
scroll top