В платформе WordPress пользователи, имеющие роль “Автор”, могут удалять свои публикации по умолчанию. Однако в некоторых случаях может потребоваться ограничить такую возможность, чтобы предотвратить случайное удаление материалов, особенно если на сайте работает множество авторов.
Для запрета авторам удаления их постов можно использовать специальный код или плагин. Один из популярных методов — добавить код в файл functions.php вашей темы. Пример кода, который нужно вставить:
function remove_author_delete_post($caps, $cap, $user_id, $args) {
if ('delete_post' === $cap && isset($args[0])) {
$post = get_post($args[0]);
if ($post->post_author == $user_id) {
$caps[] = 'do_not_allow';
}
}
return $caps;
}
add_filter('map_meta_cap', 'remove_author_delete_post', 10, 4);
Этот код проверяет, хочет ли автор удалить свой пост, и при подтверждении запрета добавляет ему соответствующее разрешение. Также существуют плагины, такие как Members или User Role Editor, которые позволяют настраивать права доступа пользователей более гибко и без необходимости редактировать код. Их использование может быть предпочтительным для тех, кто не имеет опыта программирования.
После внесения изменений авторы не смогут удалять свои публикации. Однако, имейте в виду, что администраторы и редакторы все равно сохранят возможность управления постами в полной мере, включая их удаление.

Как запретить авторам удалять посты?
Для решения данной проблемы будет рассмотрено два метода, как запретить авторам удалять свои публикации.
Метод 1. Плагин Capability Manager Enhanced
В разделе Select Role to View / Edit нужно выбрать Автор и нажать на кнопку Load. После этого на странице настроек появится список всех возможных прав для этой группы пользователей. Чтобы отключить возможность удаления своих материалов, необходимо убрать все “галочки” в категории Deletion Capabilities для Записей и затем нажать Save Changes.

После этого, когда автор попытается удалить свою запись, он просто не обнаружит соответствующей кнопки.

Способ 2. Вручную
Данный метод подразумевает изменение файла functions.php текущей темы на вашем сайте WordPress.
Если вы не знакомы с редактированием файла functions.php, то можете воспользоваться плагином ProFunctions.
Чтобы ограничить авторов в удалении своих записей, в упомянутый файл нужно добавить следующий PHP-код:
function site_change_author_role(){ global $wp_roles; $wp_roles->remove_cap( 'author', 'delete_posts' ); $wp_roles->remove_cap( 'author', 'delete_published_posts' ); } add_action( 'init', 'site_change_author_role' );
Важно отметить, что если вы захотите вернуть эту возможность авторам, вам нужно будет удалить указанный код и восстановить их права следующим образом:
function site_change_author_role(){ global $wp_roles; $wp_roles->add_cap( 'author', 'delete_posts' ); $wp_roles->add_cap( 'author', 'delete_published_posts' ); } add_action( 'init', 'site_change_author_role' );
Также полезно помнить, что перед внесением изменений в файл functions.php желательно создать резервную копию, чтобы избежать потери данных или неисправностей в работе сайта. Если вы используете дочернюю тему, рекомендуется вносить изменения именно в её файл functions.php, чтобы сохранить корректность основного шаблона при обновлениях.
Кроме того, вы можете рассмотреть возможность использования других плагинов для управления правами пользователей, таких как User Role Editor, которые могут обеспечить более гибкие настройки и лучше подходить для вашего конкретного случая.
Рекомендации по выбору ролей для авторов
Определяйте роли с учётом уровня ответственности и необходимых прав. Для редакторов предусмотрены расширенные возможности, включая управление комментариями, публикацией и редактированием. Это лучшая опция для тех, кто способен принимать решения и контролировать контент.
Авторы имеют возможность добавлять собственные материалы, но лишены прав на редактирование или удаление работ других пользователей. Это подходящий выбор для тех, кто только начинает и нуждается в ограниченной свободе.
Следует учитывать возраст и опыт каждого пользователя. Молодые и неопытные участники могут создавать путаницу, если предоставлять им слишком большие полномочия. Настройка ролей поможет избежать ненужных ошибок и недоразумений.
Выбор подходящей роли поможет установить порядок и прозрачность. Например, если у вас есть курируемый контент, редакторы будут контролировать качество, а авторы сосредоточатся на производстве материалов. Это обеспечит структурированный процесс работы.
Важно задать уровень разрешений, который соответствует задачам компании. Если ведётся активный блог, редакторы могут быть полезны для верификации содержания и одобрения публикаций. Не забывайте об аудитории и потребностях бизнеса.
Важно помнить, что неподходящие роли могут привести к путанице и нарушению работы сайта.
При использовании кастомных ролей учитывайте специфические нужды. Если вы хотите предоставить уникальные права, воспользуйтесь плагинами для расширения возможностей управления ролями и правами пользователей. Это позволит точно настроить разрешения.
Постоянно пересматривайте роли и права. Со временем могут измениться задачи пользователей, и стоит быть готовым к адаптации. Это поможет поддерживать актуальность и эффективность работы сайта.