我已经为WordPress开发了我的插件,我可以通过管理员来管理它。我已使用add_submenu_page
传递了对插件文件的访问权限。问题是插件正在扩展,我想使用从主文件链接的另一个文件。例如,我有second_page.php?id=3
。当我尝试访问此链接时,我得到了
您没有足够的权限来访问此页面。
消息。我想“验证”此页面也用于使用此脚本,我不知道如何。想法?
答案 0 :(得分:5)
当您使用add_submenu_page()
添加网页时,网址应为:
wp-admin/admin.php?page=<your_page_handle>
您的网页实际上是从admin.php
(通常)加载的。您可以通过附加&id=3
之类的内容为链接添加参数,然后让主插件页面加载逻辑根据参数确定要包含的文件。
例如
if (isset($_GET['id']) && ((int) $_GET['id']) == 3) {
include 'second_page.php';
} else {
include 'first_page.php';
}
编辑:
我找到了一个可能对你来说更容易的技巧,尽管我没有对它进行彻底的测试。假设您有两个页面:my_one
和my_two
。只需拨打add_submenu_page
两次,然后将第二页的父级设为第一页。这将导致Wordpress不添加指向导航栏的链接,但您仍然可以通过导航到admin.php?page=my_two
来访问您的页面。
示例:
add_submenu_page(
'my_toplevel_link'
, 'Page Title'
, 'Link Name'
, 'administrator'
, 'my_one' // here's the page handle for page one
, 'my_one_callback'
);
add_submenu_page(
'my_one' // set the parent to your first page and it wont appear
, 'Page Title'
, 'Link Name' // unused
, 'administrator'
, 'my_two'
, 'my_two_callback'
);
答案 1 :(得分:3)
由于WP本身支持wp-admin/admin.php?page=<your_page_handle>
之类的网址,因此您可以使用以下内容来执行子页面:
wp-admin/admin.php?page=yourpage
wp-admin/admin.php?page=yourpage&sub=2
wp-admin/admin.php?page=yourpage&sub=3
然后在处理wp-admin/admin.php?page=<your_page_handle>
的代码中,您只需查看$ _GET并根据需要拉出主页面或子页面。
我肯定看过插件,其中管理页面顶部有一小段链接链接各个子页面。