Права пользователя WordPress

Почти год у меня была проблема с автоматическим обновлением 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.

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

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