0

我正在尝试为我的插件创建一个管理菜单。

$my_hook = add_menu_page( 
                   'String',
                   'String', 
                   'manage_options',
                   'mypage&type=mytype', 
                   'my_function'
                    );   

如果我现在尝试访问该页面

wp-admin/admin.php?page=mypage&type=mytype 

通过菜单,我得到:“您没有足够的权限访问此页面。”。是不是不能在菜单项中包含像 &type=mytype 这样的 GET 参数?

谢谢。

4

3 回答 3

1

我无法确定为什么尝试将参数添加到菜单或子菜单 slug 会使生成的链接无效。但是$menu_slug在这两个函数中都使用了它,add_menu_pageadd_submenu_page()用于搜索 PHP 文件(而不是函数回调)和构建插件 URL。
尝试添加额外的运算符?&效果不佳,即它不适用于plugin_basenameor get_plugin_page_hookname

这是一种将相同的回调函数与各种顶级管理菜单一起使用的解决方法。URL 将是:

并且回调函数检查$_GET['page'].

add_action( 'admin_menu', 'menu_so_17406309' );

function menu_so_17406309()
{
    add_menu_page( 
        'First',
        'First', 
        'manage_options',
        'myplugin1',
        'callback_so_17406309'
    );
    add_menu_page( 
        'Second',
        'Second', 
        'manage_options',
        'myplugin2',
        'callback_so_17406309'
    );
}

function callback_so_17406309() 
{
    switch( $_GET['page'] ) 
    {
        case 'myplugin1':
            echo 'first page';
        break;
        case 'myplugin2':
            echo 'second page';
        break;
        default:
            echo 'error';
        break;
    }   
}

WordPress Answers 上的相关搜索查询

于 2013-07-01T16:36:08.413 回答
0

你可以做这样的事情来添加新的菜单项

$my_hook = add_menu_page( 
               'String',
               'String', 
               'manage_options',
               '?page=pagename', 
               'my_function'
                );  
于 2013-07-01T18:37:46.223 回答
0

Formanage_options是一个必需的选项,用于指定此菜单向用户显示的能力。更多细节...

您放置的角色拥有足够的权限来访问或管理此页面。

你可以试试这个:

$my_hook = add_menu_page( 
   'String',
   'String', 
   'administrator',
   'mypage&type=mytype', 
   'my_function'
);
于 2015-05-25T09:07:35.830 回答