WordPress将新页面添加到管理部分

时间:2010-05-12 22:16:33

标签: wordpress

我已经为WordPress开发了我的插件,我可以通过管理员来管理它。我已使用add_submenu_page传递了对插件文件的访问权限。问题是插件正在扩展,我想使用从主文件链接的另一个文件。例如,我有second_page.php?id=3。当我尝试访问此链接时,我得到了

  

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

消息。我想“验证”此页面也用于使用此脚本,我不知道如何。想法?

2 个答案:

答案 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_onemy_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并根据需要拉出主页面或子页面。

我肯定看过插件,其中管理页面顶部有一小段链接链接各个子页面。