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

Man*_*era 8 wordpress

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

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

信息.我想"验证"此页面也用于使用此脚本,我不知道如何.想法?

Fle*_*ore 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';
}
Run Code Online (Sandbox Code Playgroud)

编辑:

我发现了一个对你来说更容易的技巧,尽管我还没有对它进行彻底的测试.假设您有两页: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'
    );
Run Code Online (Sandbox Code Playgroud)


Ste*_*n R 4

由于 WP 本身支持 URL,因此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 并根据需要拉出主页或子页面。

我确实见过一些插件,其中管理页面的顶部有一排链接,链接各个子页面。