顶级菜单项也显示为子菜单项

时间:2013-05-21 15:32:31

标签: wordpress wordpress-plugin

我是wordpress开发的新手。我正在尝试创建一个插件,但我的顶级菜单项也显示为子菜单项。下面是我的代码。

<?php
/*
Plugin Name: rooties_main_menu
*/
add_action('admin_menu', 'gpwp_rooties_create_menu');
function gpwp_rooties_create_menu() {
add_menu_page('My Rooties Setting','Rooties Settings', 'manage_options', __FILE__, 'gpwp_rooties_setting_page',plugins_url('/images/wordpress.png',__FILE__) );

add_submenu_page(__FILE__, 'About Rooties Plugin', 'About', 'manage_options',__FILE__.'_about',gpwp_rooties_setting_about_page);
add_submenu_page(__FILE__, 'Today\'s Menu', 'Today\'s Menu', 'manage_options',__FILE__.'_about',gpwp_rooties_setting_menu_form_page);   
}
?>

我知道这不是安全前景的最佳代码。我在我的本地系统尝试这些。

按照上面的代码,只有“关于”和“今天的菜单”应该显示为子菜单,但它也显示“Rooties设置”。请让我知道我错在哪里。

1 个答案:

答案 0 :(得分:1)

来自法典:http://codex.wordpress.org/Adding_Administration_Menus#Using_add_submenu_page

  

对于现有的WordPress菜单,处理显示的PHP文件   菜单页面内容。对于自定义顶级菜单的子菜单,a   此子菜单页面的唯一标识符。

     

在插件创建自己的顶级菜单的情况下,   第一个子菜单通常与顶级链接标题相同   菜单,因此链接将被复制。重复的链接标题   可以通过第一次调用add_submenu_page函数来避免   与parent_slug和menu_slug参数给出相同的   值。

这里有一些代码示例,虽然它们很旧 - &gt; http://wordpress.org/support/topic/add_menu_page-always-add-an-extra-subpage

在:

add_menu_page('Section', 'Section', 10, __FILE__, 'section');
add_submenu_page(__FILE__, 'Edit', 'Edit', 10, 'section-edit', 'section_edit');

修正:

add_menu_page('Section', 'Section', 10, __FILE__, 'section');
add_submenu_page(__FILE__, 'Edit', 'Edit', 10, __FILE__, 'section_edit');