Сброс ролей и прав доступа по умолчанию
У меня возникли сложности с добавлением прав доступа для пользовательских типов записей к ролям (Добавление прав доступа к ролям по умолчанию) и я подозреваю, что мои манипуляции могли вызвать некоторые проблемы. Я также устанавливал и удалял различные плагины, некоторые из которых добавляли свои права доступа. В результате мой объект WP Role находится в беспорядке. Кто-нибудь знает способ сбросить права доступа или мне нужна новая установка WordPress?

Если вы не хотите устанавливать плагин только для выполнения этой задачи, вы можете напрямую вызвать функцию WordPress для пересоздания ролей и их возможностей.
if ( !function_exists( 'populate_roles' ) ) {
require_once( ABSPATH . 'wp-admin/includes/schema.php' );
}
populate_roles();

Я нашел более простой способ сброса ролей и связанных с ними возможностей — использовать wp-cli.
В wp-cli есть встроенный метод для сброса ролей. Вы можете указать те роли, которые хотите сбросить. Например:
wp role reset author contributor editor subscriber
Также есть флаг --all
, который можно использовать следующим образом:
wp role reset --all
Предупреждение: это также сбросит возможности администратора, что может ограничить доступ к некоторым плагинам, поэтому используйте с осторожностью.

Я использую плагин User Role Editor. Вы можете удалять добавленные роли и сбрасывать роли на странице плагина.
Чтобы сбросить роль администратора, начиная с версии WP 3.4+, вы можете добавить
define('URE_SHOW_ADMIN_ROLE', 1);
в ваш файл wp-config.php. После этого необходимо перейти в раздел Пользователи > Редактор ролей пользователей и нажать кнопку "Сбросить".

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

Как и с любым плагином, я рекомендую сделать резервную копию базы данных заранее, на случай если что-то пойдет не так - вы всегда сможете откатиться.

К сожалению, он не смог сбросить администратора, а именно его я и хотел сбросить.

Если у вас WordPress версии 3.4 или выше, вы можете добавить следующую строку в файл wp-config.php
define('URE_SHOW_ADMIN_ROLE', 1);

Я попробовал это. Просто добавить и сохранить? Я сделал print_r(get_role( 'administrator' ));
и все мои пользовательские возможности все еще на месте, как и те, которые были добавлены различными плагинами.

После добавления URE_SHOW_ADMIN_ROLE вам нужно перейти в Пользователи > Редактор ролей и нажать "Сбросить"

Отлично. Спасибо. Это не решило мою проблему, но, по крайней мере, я могу исключить этот вариант.

@mantis Пожалуйста, не редактируйте чужие сообщения, чтобы добавлять дополнительную информацию. Пожалуйста, ознакомьтесь с http://wordpress.stackexchange.com/help/editing

Хорошо, извините, я попытался отменить правку, но мне это не разрешили.

@bungeshea Пункт 3 раздела "Когда следует редактировать сообщения?" (на той самой странице, которую вы указали) гласит: "Чтобы включить дополнительную информацию, найденную в комментариях, чтобы вся релевантная информация содержалась в одном месте" --> Именно это и сделал пользователь mantis. Почему это недопустимо?
