Ответ 1
Вы изменили префикс таблиц базы данных? Я на 90% уверен, что это твоя проблема.
Дело в том, что WordPress использует переменную $table_prefix
для формирования имен опций и usermeta-ключей, где хранит информацию о ролях и возможностях. Поэтому, как только вы меняете префикс, но не обновляете свой дБ, вы получаете эту ошибку. Вот как это исправить - выполните эту команду SQL через phpMyAdmin или другой интерфейс для взаимодействия с вашей БД (вы также можете сделать это с PHP):
UPDATE `{%TABLE_PREFIX%}usermeta` SET `meta_key` = replace(`meta_key`, '{%OLD_TABLE_PREFIX%}', '{%NEW_TABLE_PREFIX%}');
UPDATE `{%TABLE_PREFIX%}options` SET `option_name` = replace(`option_name`, '{%OLD_TABLE_PREFIX%}', '{%NEW_TABLE_PREFIX%}');
Где:
-
{%TABLE_PREFIX%}
- ваш текущий$table_prefix
(как установлено вwp-config.php
) -
{%OLD_TABLE_PREFIX%}
- это ваш предыдущий$table_prefix
-
{%NEW_TABLE_PREFIX%}
- ваш новый (текущий)$table_prefix
- он скорее всего будет таким же, как ваш{%TABLE_PREFIX%}
.
Итак, если ваш старый $table_prefix
был wp_test_
, а ваш новый wp_
, вы должны сделать этот запрос:
UPDATE `wp_usermeta` SET `meta_key` = replace(`meta_key`, 'wp_test_', 'wp_');
UPDATE `wp_options` SET `option_name` = replace(`option_name`, 'wp_test_', 'wp_');
EDIT: Как заметил @Francisco Corrales, если у вас возникли проблемы с доступом к созданной вами странице администратора (если вы не пишете PHP, это не ваш случай), вы можете проверить эту ссылку: Ошибка Wordpress при разработке плагина - "У вас нет достаточных разрешений для доступа к этой странице."
РЕДАКТИРОВАТЬ 2: Как отметил @Kasper Souren, вы можете добавить предложение WHERE к опциям UPDATE. Так же (не удаляйте %
после последнего %}
):
UPDATE `{%TABLE_PREFIX%}options` SET `option_name` = replace(`option_name`, '{%OLD_TABLE_PREFIX%}', '{%NEW_TABLE_PREFIX%}') WHERE option_name like '{%OLD_TABLE_PREFIX%}%';