В WordPress, по умолчанию, пользователи с ролью “Автор” имеют возможность удалять созданные ими посты (записи). Иногда бывает необходимо запретить им такое действия, например, чтобы избежать случайно удаленных материалов с сайта (особенно, если на сайте много авторов).
Как запретить авторам удалять посты?
Для решения поставленной задачи рассмотрим два способа, позволяющих запретить авторам возможность удалять свои записи.
Метод 1. Плагин Capability Manager Enhanced
Бесплатный плагин Capability Manager Enhanced добавляет возможность гибко управлять правами для той или иной роли пользователей, включая и работу с записями. Во-первых, дополнение необходимо установить и активировать, после чего перейти в раздел Пользователи -> Capabilities.
Дальше, в блоке Select Role to View / Edit, следует выбрать Автор и нажать кнопку Load. В итоге на странице настроек будет доступен список всевозможных прав для этой группы пользователей. Для отключения возможности удаления своих материалов необходимо в блоке Deletion Capabilities убрать все “галочки” в строке Записи и нажать кнопку Save Changes.
Теперь, когда какой-либо автор захочет удалить свою запись, то просто не увидит соответствующую кнопку.
Способ 2. Вручную
Этот способ предполагает редактирование файла functions.php Вашей активной темы на WordPress-сайте.
Если Вы не знаете, как редактировать functions.php, то в этом случае Вам поможет плагин ProFunctions.
Итак, чтобы запретить автору удалять его записи, в указанный файл необходимо поместить следующий PHP-код:
function wpschool_change_author_role(){ global $wp_roles; $wp_roles->remove_cap( 'author', 'delete_posts' ); $wp_roles->remove_cap( 'author', 'delete_published_posts' ); } add_action( 'init', 'wpschool_change_author_role' );
Следует отметить, что если Вы захотите отменить этот запрет, то после удаления этого кода необходимо будет восстановить права для пользователей роли “Автор”. Это можно сделать следующим образом:
function wpschool_change_author_role(){ global $wp_roles; $wp_roles->add_cap( 'author', 'delete_posts' ); $wp_roles->add_cap( 'author', 'delete_published_posts' ); } add_action( 'init', 'wpschool_change_author_role' );
Нажмите, пожалуйста, на одну из кнопок, чтобы узнать понравилась статья или нет.