创建插件时的权限错误

时间:2014-03-25 13:04:21

标签: wordpress

我是第一次创建插件。在我的主插件文件中,我创建了一个包含代码的菜单:

add_menu_page( 
    'custom menu title', 
    'custom menu', 
    'manage_options', 
    'teamstatistics/teamstatistics-admin.php', 
    '', 
    plugins_url( 'teamstatistics/images/icon.png' ), 
    6 
);

问题在于,当我使用URL时,它正在运行:

http://example.com/mywordpress/wp-admin/options-general.php?page=teamstatistics/teamstatistics-admin.php

但是当我传递像

这样的查询字符串时
http://example.com/mywordpress/wp-admin/options-general.php?page=teamstatistics/teamstatistics-admin.php?sid=1

它不起作用。它正在给予

  

您没有足够的权限来访问此页面。

2 个答案:

答案 0 :(得分:1)

您的查询字符串无效。 QS仅使用一个?启动 。名称 - 值对是&name=value而非?name=value

<强> INVALID

options-general.php page = teamstatistics / teamstatistics-admin.php sid = 1

<强> VALID

options-general.php page = teamstatistics / teamstatistics-admin.php &amp; sid = 1

答案 1 :(得分:0)

好吧,你没有正确使用add_menu_page parameters。如果某些内容无法正常工作,请务必查看文档。

add_menu_page( 
    $page_title, 
    $menu_title, 
    $capability, 
    $menu_slug, 
    $function, 
    $icon_url, 
    $position 
);

以下是在同一个插件页面中使用$_GET的示例代码:

add_action( 'admin_menu', 'menu_so_22635531' );

function menu_so_22635531()
{
    add_menu_page( 
        'custom menu title', 
        'custom menu', 
        'manage_options', 
        'teamstatistics', 
        'page_so_22635531', 
        plugins_url( 'teamstatistics/images/icon.png' ), 
        6 
    );
}

function page_so_22635531()
{
    // Do your include here

    // Demonstrative code
    echo '<h1>Team Statistics</h1>';
    if( isset( $_GET['sid'] ) )
    {
        $sid = $_GET['sid'];
        echo "<h2>SID = $sid</h2>";
    }
    // Generate test link that goes to
    // http://example.com/wp-admin/admin.php?page=teamstatistics&sid=RANDOM-NUMBER
    printf(
        '<a href="%s">Go to new sid</a>',
        admin_url( 'admin.php?page=teamstatistics&sid=').rand()
    );

}