Мёртвый блог живого человека

SEO-оптимизация, манимейкинг, веб-разработка

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

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

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

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



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

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

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

Правки в phpMyAdmin

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

2

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

4

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

3

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

UPDATE `PREFIX_usermeta` SET `meta_key` = REPLACE(`meta_key` , 'wp_', 'PREFIX_');

Данным запросом мы меняем все старые префиксы 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 минут, как и обещал (: Если всё же не получится и не заработает, то пиши проблему в комментариях, я постараюсь помочь её решить.



Оставить комментарий

Подтвердите, что Вы не бот — выберите человечка с поднятой рукой:

Комментарии

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

    VA:F [1.9.22_1171]
    +3
  2. Самые толковые рекомендации из тех, что я нашла.

    Спасибо, только с Вами все получилось! )

    VA:F [1.9.22_1171]
    0
  3. Не работает

    VA:F [1.9.22_1171]
    +1
  4. В таблице wp2_usermeta в строке wp_capabilities должно быть a:1:{s:13:"administrator";s:1:"1";}

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

    VA:F [1.9.22_1171]
    0
  6. У меня после переезда на 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);

    VA:F [1.9.22_1171]
    +1
    • Я вернулся)) Возникла необходимость перевести ещё один WP-сайт на https. Вспомнил, как мучился в первый раз, нашёл свой комментарий выше, всё повторил, но — не работает.

      Сравнив два файла wp-config.php, понял, что имеет значение ещё и то, КУДА вставлять приведённый мной выше кусок кода. А вставлять его нужно перед строкой

      «/* Это всё, дальше не редактируем. Успехов! */»

      она же в английской версии WP:

      «/* That's all, stop editing! Happy blogging. */»

      VA:F [1.9.22_1171]
      0


Подпишись и будь вкурсе всех новых тем на блоге — узнаешь много нового!