Вопрос или проблема
У вас нет достаточных прав для доступа к этой странице. Это ошибка, с которой я сталкиваюсь, создавая свой собственный плагин. На самом деле я хочу сделать ссылку на другую страницу.
Версия 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 без получения ошибок о недостаточных правах доступа. Убедитесь, что у вас есть правильные права доступа и что идентификаторы меню не конфликтуют с другими элементами админ панели. Если будут возникать проблемы, проверьте все настройки и права доступа пользователя.