Почти год у меня была проблема с автоматическим обновлением WordPress. На своем сайте я админ, но при попытке обновления или отображения списка зарегистрированных пользователей появлялась надпись «У вас недостаточно полномочий для доступа к этой странице» или «Что, хакер?». Сегодня дошли руки исправить эту проблему.
Все операции я производил через phpMyAdmin. У большинства проблема с этими надписями происходили из-за смены префикса, например «wp_» на какой-либо другой. Я префикс не менял, но на страницы некоторые меня все равно не пускало.
Для исправления ищем нужную запись в таблице (кстати не забываем про бэкапы)
SELECT * FROM wp_options WHERE option_name="wp_user_roles"
И в ней записи вида
- a:2:{ … } — массив из двух пар ключ-значение
- s:6:»stroka»; — строка длинной в 6 символов
- b:1; — boolean со значением true
Обычно название нужного права для доступа находится где-то вверху исходника страницы, например у users.php есть строка
if ( ! current_user_can( 'list_users' ) ) wp_die( __( 'Cheatin’ uh?' ) );
Значит нам нужно добавить группе administrator элемент list_users в массив capabilities. Увеличиваем на 1 количество элементов в capabilities и добавляем в начало или в конец фигурных скобок массива
s:10:"list_users";b:1;
Вот собственно и все. Очень помогла заметка How to change WordPress User Role capabilities.