Поддержка Проблемы и решения Связь между страницами: как создать свою страницу реда

  • Задача: Есть пользовательское меню, организованное типа стандартного меню Post:
    Top-level
    edit
    new
    Страницы edit и new имеют url, соответственно, http://wp/wp-admin/admin.php?page=file_plugin.php и http://wp/wp-admin/admin.php?page=new_data_. Страница edit представляет собой набор ссылок, которые должны вести на отдельную страницу редактирования конкретных данных (типа на отдельный пост). В шаблоне страницы edit, я приписываю ссылки формируются следующим образом:
    <a class="row-title" href="<?echo admin_url();?>?page=edit_data&action=edit&data=<?echo $val['id'];?>"><?echo $val['title'];?></a>
    В файле плагина я анализирую параметр page, гружу соответствующий шаблон, анализирую параметр data, чтобы знать что подставлять в шаблон.

    Проблема: При переходе по вышеописанной ссылке, я попадаю на просто белую страницу со своим шаблоном, обведенном в рамку и с сообщением: «You do not have sufficient permissions to access this page.» внизу. URL этой страницы: http://wp/wp-admin/?page=edit_data&action=edit&data=118200887. Почему у меня недостаточно прав, хотя я захожу под админом и как вывести эту страницу в одном стиле с WordPress, подобной странице редактирования отдельного поста.
    Заранее спасибо.

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Предполагаю, что страницы edit_data не существует (только file_plugin.php и new_data_). Она добавлена в меню? Было бы здорово увидеть весь код.

    Спасибо большое за ответ, извините, что сразу не отписалась, было много работы. Да Вы правы, страницы edit_data действительно не существовало. Вот как я сделала:
    Меню создаю, так что все нужные мне действия обрабатывает одна функция, а не разные как было раньше:

    function add_admin_menu()
    {
    add_menu_page('Add-in', 'Add-in', 8,basename(__FILE__), 'data_page');
    }
    //Create submenu pages for "Add-in"
    function add_admin_sub_menu()
    {
    add_submenu_page(basename(__FILE__), 'Data', 'Data', 8,basename(__FILE__), 'data_page');
    }

    А ссылки формируются так:
    <a href="<?echo admin_url();?>admin.php?page=<?echo $_GET['page'];?>&action=edit_data&slide=<?echo $val['id'];?>"><?_e('Редактировать')?></a>
    А в файле плагина анализируется параметр action.

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Тема «Связь между страницами: как создать свою страницу реда» закрыта для новых ответов.