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

Ты изменил префикс таблицы блога на WordPress и теперь не пускает в админку со словами «У вас недостаточно полномочий для доступа к этой странице.»? Давай я тебе помогу решить эту проблему (:

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

Надеюсь, ты поменял в файле wp-config.php параметр $table_prefix на нужный тебе. Если ещё нет, то первым делом сделай это. Ну а дальше потребуется 5 минут времени и доступ к базе данных(в моём примере будем использовать phpMyAdmin.

Как исправить ошибку «У вас недостаточно полномочий…»?

Почему появляется такая ошибка?

Строчка теории. Почему происходит такая ошибка? Дело в том, когда меняешь префикс таблицы, то WordPress не меняет некоторые параметры в базе данных, которые отвечают за права доступа пользователей к админке. Эти параметры по прежнему имеют префикс «wp_» и именно из-за этого ты видишь ошибку «У вас недостаточно полномочий для доступа к этой странице«, которую мы сейчас починим.

Правки в phpMyAdmin

Заходи в phpMyAdmin или любую другую систему работы с базой данных и выбирай базу данных:

2

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

4

Затем переходим на вкладку «SQL«:

3

Вводим запрос(PREFIX — это новый префикс вашей таблицы) и жмём ОК.

[sql]UPDATE `PREFIX_usermeta` SET `meta_key` = REPLACE(`meta_key` , ‘wp_’, ‘PREFIX_’);[/sql]

Данным запросом мы меняем все старые префиксы wp_ на ваш новый, для таблицы usermeta, которая содержит много информации о правах доступа и разных настроек пользователей.

Следующий шаг, придётся поработать ручками. В левой части находим таблицу PREFIX_options, в которой хранятся настройки плагинов и самого WordPress’a:

5

Затем находим столбик «option_name» и сортируем его в обратном порядке (кликаем по нему, чтобы сортировка была не по алфавиту, а наоборот):

6

Ищем в столбце «option_name» опцию «wp_user_roles» (если не нашёл на первом экране, там внизу есть листалки >  >>, она обязательно будет на втором экране):

7

Жмём «Изменить» и меняем «wp_user_roles» на «PREFIX_user_roles«. Жмём кнопку «ОК» и на этом с базой данных мы закончили:

8

Необязательные действия

Есть ещё пара советов, которые я тебе дам, но делать их или нет — решать тебе, всё будет работать и без данных действий.

Итак, первое что надо сделать — это почистить кэш браузера. Второе — открыть файл «wp-config.php» и изменить уникальные ключи для аутентификации (генерируются они с помощью ссылки https://api.wordpress.org/secret-key/1.1/salt/).

Ну вот и всё, дел на 5 минут, как и обещал (: Если всё же не получится и не заработает, то пиши проблему в комментариях, я постараюсь помочь её решить.

Комментарии (8):

  1. Шамсудин Ответить

    Проверка идет долго ,вначале был ответ , не корректный емаил

    18.09.2014 в 13:16
  2. Регина Ответить

    Самые толковые рекомендации из тех, что я нашла.
    Спасибо, только с Вами все получилось! )

    22.09.2014 в 16:27
  3. andrew Ответить

    Не работает

    13.11.2014 в 07:22
  4. andrew Ответить

    В таблице wp2_usermeta в строке wp_capabilities должно быть a:1:{s:13:»administrator»;s:1:»1″;}

    13.11.2014 в 07:55
  5. Ihmalta Ответить

    А если префикс всей БД был изначально поменян с wp_ на что-то другое — нужно ли менять ещё раз? Обновление ключей в wp-config.php ничего не дало (сайт работает через https).

    29.04.2016 в 19:39
  6. Andrews32 Ответить

    У меня после переезда на https, вложенный сайт (папка /ru/ на англоязычном сайте с отдельным WordPress в ней), перестал пускать в админку по https.

    Прописал вот такой код в файле /site.com/ru/wp-config.php и проблема решилась:

    define( ‘FORCE_SSL_ADMIN’, true );
    if (strpos($_SERVER[‘HTTP_X_FORWARDED_PROTO’], ‘https’) !== false)
    $_SERVER[‘HTTPS’]=’on’;
    $_SERVER[‘HTTPS’] = ‘on’;
    /* SSL в панели администратора */
    define(‘FORCE_SSL_LOGIN’, true);
    /* SSL в панели входа */
    define(‘FORCE_SSL_ADMIN’, true);

    08.07.2016 в 15:59
    • Andrews32 Ответить

      Я вернулся)) Возникла необходимость перевести ещё один WP-сайт на https. Вспомнил, как мучился в первый раз, нашёл свой комментарий выше, всё повторил, но — не работает.

      Сравнив два файла wp-config.php, понял, что имеет значение ещё и то, КУДА вставлять приведённый мной выше кусок кода. А вставлять его нужно перед строкой
      «/* Это всё, дальше не редактируем. Успехов! */»
      она же в английской версии WP:
      «/* That’s all, stop editing! Happy blogging. */»

      17.08.2016 в 15:59

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *