Wordpress admin_menu

时间:2013-07-01 13:59:57

标签: wordpress wordpress-plugin

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

$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参数?

感谢。

3 个答案:

答案 0 :(得分:0)

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

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

并且回调函数检查$_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答案中的相关search query

答案 1 :(得分:0)

你可以做这样的事情

$ my_hook = add_menu_page(                    '串',                    '串',                    'manage_options',                    '?页=页面名称',                    '创建my_function'                     );

答案 2 :(得分:0)

manage_options是一个必需的选项,用于指定向用户显示此菜单的功能。 more details...

您将角色具有足够的权限来访问或管理此页面。

你可以试试这个:

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