我是第一次创建插件。在我的主插件文件中,我创建了一个包含代码的菜单:
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
它不起作用。它正在给予
您没有足够的权限来访问此页面。
答案 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()
);
}