WordPress добавить новую страницу в раздел администратора - PullRequest
8 голосов
/ 13 мая 2010

Я уже разработал свой плагин для WordPress, и я могу управлять им от администратора. Я передал доступ к файлу плагина, используя add_submenu_page. Проблема в том, что плагин расширяется, и я хочу использовать другой файл, который связан с основным файлом. Например, у меня есть second_page.php?id=3. Когда я пытаюсь получить доступ к этой ссылке, я получаю

У вас недостаточно прав для доступа к этой странице.

сообщение. Я хочу "проверить" эту страницу также для использования с этим сценарием, и я не знаю, как. Идеи?

Ответы [ 2 ]

5 голосов
/ 13 мая 2010

Когда вы добавляете страницу с add_submenu_page(), URL должен выглядеть примерно так:

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';
}

Edit:

Я нашел трюк, который может быть проще для вас, хотя я не проверил его полностью. Допустим, у вас есть две страницы: my_one и my_two. Просто дважды наберите add_submenu_page и установите родителя второй страницы в качестве первой. Это приведет к тому, что Wordpress не будет добавлять ссылку на панель навигации, но вы все равно сможете получить доступ к своей странице, перейдя к admin.php?page=my_two.

* * Пример тысяча двадцать-один: * * 1 022
    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'
    );
3 голосов
/ 14 мая 2010

Поскольку 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 и поднимаете главную страницу или подстраницу по мере необходимости.

Я определенно видел плагины, где на странице администратора есть небольшой ряд ссылок вверху, связывающих различные подстраницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...