WordPress添加_子菜单_页面添加断开的链接

时间:2012-02-14 作者:leticia

我在几个网站上安装了我的插件,backed的子菜单链接生成工作正常,但在一个特定网站上失败。

我使用以下代码添加子菜单项:

add_menu_page(
    \'Plugin name\',
    \'Plugin name\',
    \'manage_options\',
    basename(__FILE__),
    \'handle_this_action\'
);

add_submenu_page(
    basename(__FILE__),
    \'Link 1\',
    \'Link 1\',
    \'manage_options\',
    basename(__FILE__),
    \'handle_this_action\'
);
这将在背面生成一个菜单框,其中包含一个链接,主链接位于菜单框标题中。当我点击菜单框中的主链接时,我会被正确地重定向到我的页面,URL如下:

http://mysite.net/wp-admin/admin.php?page=myplugin.php

但当我点击子菜单链接时,我被错误地重定向到:

http://mysite.net/wp-admin/myplugin.php?page=myplugin.php

而不是:http://mysite.net/wp-admin/admin.php?page=myplugin.php

我真的不知道我要检查什么才能弄明白这一点。给我这个问题的网站使用的WordPress版本是3.3.1版本,我没有激活任何其他插件。

如何继续?任何提示或帮助都将不胜感激。

1 个回复
SO网友:Chip Bennett

WordPress正在做你告诉它要做的事情。请参阅Codex entry for add_submenu_page(). 函数参数如下所示:

<?php 
add_submenu_page( 
    $parent_slug, 
    $page_title, 
    $menu_title, 
    $capability, 
    $menu_slug, 
    $function 
);
?>
因此,您将相同的字符串分配给$parent_slug$menu_slug. 出于显而易见的原因,这两者需要有所不同。

  • $parent_slug 是父菜单页的slug。您将其指定为basename( __FILE__ ) 在您的add_menu_page() 呼叫

  • $menu_slug 是子菜单页面的slug。请注意法典中的内容:

    如果不想复制父菜单项,则需要将$menu\\u slug的名称设置为与父slug完全相同。

    虽然这句话写得令人困惑,但我认为它是说$parent_slug$menu_slug 同样,您正在将主父子菜单项替换为此页面,听起来这不是您想要做的。

结束

相关推荐

Menu API not switching menus?

我正在使用菜单API,我想切换到其他菜单,但出于某种原因,它保留了第一个菜单这是我的密码在函数中。php add_action( \'init\', \'register_my_menus\',10 ); function register_my_menus() { register_nav_menu(\'main-navigation\', \'Main Navigation\'); } 下面是我的主题文件(header.ph