Как удалить комментарии по автору в WordPress

В работе с WordPress иногда возникает необходимость массово удалить все комментарии, оставленные определённым пользователем или автором. Это может понадобиться при очистке спама, удалении аккаунта пользователя или приведении сайта к более аккуратному виду. В этой статье мы разберём, как удалить комментарии по автору в WordPress как с помощью плагинов, так и с помощью кастомных решений на PHP.

Почему важно корректно удалять комментарии по автору

Удаление комментариев неправильно или через базу данных напрямую без учета связей может привести к повреждению целостности данных. WordPress хранит комментарии в таблице wp_comments и связанные с ними метаданные в wp_commentmeta. При удалении комментариев нужно тщательно удалять все связанные записи, чтобы не оставлять «мусор» в базе данных.

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

Удаление комментариев по автору с помощью плагина

Для тех, кто не хочет погружаться в код, есть готовые плагины, которые позволяют выбрать автора и удалить все его комментарии. Один из удобных вариантов — плагин «Bulk Delete».

Плагин Bulk Delete

Этот плагин позволяет удалять записи, комментарии и прочие данные по различным критериям, включая автора.

  • Установите и активируйте плагин Bulk Delete через админку WordPress.
  • Перейдите в Bulk WP → Bulk Delete Comments.
  • Выберите критерий для удаления — в нашем случае «Author».
  • Выберите пользователя, чьи комментарии нужно удалить.
  • Нажмите кнопку удаления и подтвердите действие.

Плагин аккуратно удалит все комментарии выбранного автора, учитывая вложенность и метаданные.

Другие плагины

Если Bulk Delete не подходит, можно попробовать «Delete Comments by User» или «WP Bulk Delete», которые имеют похожий функционал.

Удаление комментариев по автору через код: пример функции

Если вы предпочитаете более точечное управление и хотите интегрировать удаление комментариев в свой код, ниже пример функции для wpboard, которая удаляет все комментарии пользователя по user ID.

function wpboard_delete_comments_by_user_id($user_id) {
    if (!is_numeric($user_id) || $user_id <= 0) {
        return false;
    }
    global $wpdb;
    // Получаем ID комментариев пользователя
    $comment_ids = $wpdb->get_col($wpdb->prepare(
        "SELECT comment_ID FROM {$wpdb->comments} WHERE user_id = %d",
        $user_id
    ));
    if (empty($comment_ids)) {
        return 0; // Нет комментариев для удаления
    }
    foreach ($comment_ids as $comment_id) {
        wp_delete_comment($comment_id, true); // true - принудительное удаление
    }
    return count($comment_ids);
}

Эта функция сначала получает все ID комментариев, оставленных пользователем с заданным ID, а затем удаляет каждый через встроенную функцию WordPress wp_delete_comment, которая корректно обрабатывает все связанные данные.

Пример вызова функции:

$deleted_count = wpboard_delete_comments_by_user_id(123);
echo "Удалено комментариев: " . $deleted_count;

Как использовать функцию в админке

Вы можете добавить эту функцию в файл functions.php вашей темы или создать отдельный плагин. Для удобства можно сделать форму в админке, где вводится ID пользователя, а затем запускается удаление.

Удаление комментариев по email или имени автора

Если нужно удалить комментарии не по user ID, а по email или имени автора, можно изменить запрос:

function wpboard_delete_comments_by_author_email($email) {
    global $wpdb;
    $comment_ids = $wpdb->get_col($wpdb->prepare(
        "SELECT comment_ID FROM {$wpdb->comments} WHERE comment_author_email = %s",
        $email
    ));
    if (empty($comment_ids)) {
        return 0;
    }
    foreach ($comment_ids as $comment_id) {
        wp_delete_comment($comment_id, true);
    }
    return count($comment_ids);
}

Это удобно, если комментарии оставлялись гостями, без регистрации.

Советы по безопасности и резервному копированию

Перед массовым удалением комментариев всегда создавайте резервную копию базы данных. Ошибочный запуск скрипта может привести к потере важных данных.

Для выполнения функций удаления безопаснее использовать nonce и проверку прав пользователя в админке, чтобы предотвратить несанкционированное удаление.

Заключение

Удаление комментариев по автору в WordPress — задача, требующая аккуратности. Если вы не хотите писать код, воспользуйтесь проверенными плагинами, такими как Bulk Delete. Если же необходима кастомизация, функции с использованием wp_delete_comment позволят выполнить задачу безопасно и эффективно.

Для расширения функционала и интеграции с другими сервисами можно рассмотреть плагины от WPSHOP, которые помогут упростить работу с комментариями и модерацией.

Как создать динамический фильтрованный список постов в WordPress с помощью WP_Query
02.02.2026
Как добавить нестандартные (вложенные) комментарии в WordPress
09.02.2026
Как создать пошаговую многошаговую форму в WordPress без плагинов
27.02.2026
Как создать авторизацию через собственную форму в WordPress
30.11.2025
Как создать собственный тип данных (Custom Post Type) в WordPress
10.03.2026