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

Вопрос или проблема

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

Версия WordPress 3.8.1. Я создал плагин, который отображает следующий интерфейс (главная страница моего CRUD плагина).
введите описание изображения здесь

Я хочу, чтобы ссылка “Добавить новый” перенаправляла на другой create.php (который находится в той же папке, что и crud.php – файл индекса). Но отображается сообщение: “У вас нет достаточных прав для доступа к этой странице”. Правильно ли я ссылаюсь на файл create.php внутри своей папки плагина? Я пытался прочитать о межстраничных вызовах в WordPress, но безуспешно. Я смотрел разные видеоуроки по плагинам, но каждое видео заканчивалось на одной и той же странице. Я хочу перенаправить на страницу create.php с тем же сайдбаром и верхней панелью, что и на странице CRUD. И, конечно, я аккуратно вставил HTML и PHP код, просто не знал, как правильно их отобразить здесь. Я хочу перенаправление, чтобы предотвратить добавление данных в мою таблицу каждый раз, когда страница обновляется. А структура моей папки следующая:

введите описание изображения здесь

Код выглядит следующим образом:

add_action('admin_menu','crudindex');
function crudindex(){
    add_options_page('Crud Dashboard', 'Crudboard', 'manage_options', 'crud', 'crudboard');
}

function crudboard()
{
    <div class="wrap">
        <h2>
            Моторы
            <a class="add_new-h2" href="https://wordpress.stackexchange.com/questions/137953/<?php bloginfo("url");?>/wp-admin/options-general.php?page=create">Добавить новый</a>

        </h2>
        <table class="wp-list-table widefat fixed pages">
        </table>
}

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

Попробуйте:

function crudindex(){
   add_options_page('Crud Dashboard', 'Crudboard', 'manage_options', 'crud', 'crudboard');
   add_options_page(NULL, 'Crudboard', 'manage_options', 'create_crud', 'crudboard');
}

и ваша анкера будет выглядеть так:

<a class="add_new-h2" href="https://wordpress.stackexchange.com/questions/137953/<?php bloginfo("url");?>/wp-admin/options-general.php?page=create_crud">Добавить новый</a>

Другой способ сделать это:

function crudindex(){
   add_options_page('Crud Dashboard', 'Crudboard', 'manage_options', 'crud', 'crudboard');
   add_options_page('Crudboard', 'Crudboard', 'manage_options', 'create_crud', 'crudboard');
}


function remove_submenus() {
   global $submenu;
   echo "<pre>" . print_r($submenu['options-general.php'], true) . "</pre>";
   unset($submenu['options-general.php'][your-menu-array-key]);
}
add_action('admin_menu', 'remove_submenus');

Выше показаны все подменю в разделе настроек, вы найдете свой ключ позиционирования меню и замените его на your-menu-array-key.

Ответ или решение

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

1. Правильное добавление страниц в меню администратора

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

add_action('admin_menu', 'crudindex');

function crudindex() {
    add_menu_page('Crud Dashboard', 'Crudboard', 'manage_options', 'crud', 'crudboard');
    add_submenu_page('crud', 'Добавить новый CRUD', 'Добавить', 'manage_options', 'create_crud', 'create_crud_page');
}

function crudboard() {
    ?>
    <div class="wrap">
        <h2>
            Motors
            <a class="add_new-h2" href="<?php echo admin_url('admin.php?page=create_crud'); ?>">Add New</a>
        </h2>
        <table class="wp-list-table widefat fixed pages">
            <!-- Ваш код таблицы -->
        </table>
    </div>
    <?php
}

function create_crud_page() {
    ?>
    <div class="wrap">
        <h2>Добавить новый CRUD</h2>
        <!-- Ваш код для создания нового элемента CRUD -->
    </div>
    <?php
}

2. Объяснение изменений

  • В функции crudindex теперь используется add_menu_page для основной страницы и add_submenu_page для добавления подпункта меню "Добавить новый CRUD". Это гарантирует, что все элементы находятся под вашим основным меню.

  • Вместо прямой ссылки на файл create.php, мы создаем отдельную функцию create_crud_page, которая будет выводить нужный интерфейс для добавления нового элемента. Это улучшает безопасность и целостность кода.

3. Настройка прав доступа

Для того чтобы пользователи могли получить доступ к страницам плагина, нужно убедиться, что их роль имеет необходимые права. Мы используем manage_options для контроля доступа. Убедитесь, что вы входите в систему как администратор или пользователь с соответствующими правами.

4. Структура папок плагина

Убедитесь, что структура вашего плагина соответствует стандартам WordPress. Например:

/wp-content/plugins/
    /ваш-плагин/
        crud.php
        create.php (если нужно)

5. Заключение

Теперь, когда вы настроили свой плагин, у вас должна быть возможность добавлять новые элементы CRUD без получения ошибок о недостаточных правах доступа. Убедитесь, что у вас есть правильные права доступа и что идентификаторы меню не конфликтуют с другими элементами админ панели. Если будут возникать проблемы, проверьте все настройки и права доступа пользователя.

Оцените материал
Добавить комментарий

Капча загружается...