# wp_delete_comment()

URL: https://chugunov.pro/api-wordpress/functions/wp_delete_comment/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 2.0.0.

## Сигнатура

```php
wp_delete_comment( int|WP_Comment $comment_id, bool $force_delete = false ): bool
```

## Описание

Комментарий перемещается в корзину, а не удаляется безвозвратно, за исключением случаев, когда корзина отключена, элемент уже находится в корзине или $force_delete равно true.
Количество комментариев записи будет обновлено, если комментарий был одобрен и для него доступен идентификатор записи.

## Параметры

- `$comment_id` `int|WP_Comment` — обязательный. Идентификатор комментария или объект WP_Comment.
- `$force_delete` `bool` — необязательный, по умолчанию `false`. Обходить ли корзину и принудительно удалять.

## Возвращаемое значение

`bool`

## Исходный код

Файл: `wp-includes/comment.php:1508`

```php
function wp_delete_comment( $comment_id, $force_delete = false ) {
	global $wpdb;

	$comment = get_comment( $comment_id );
	if ( ! $comment ) {
		return false;
	}

	if ( ! $force_delete && EMPTY_TRASH_DAYS && ! in_array( wp_get_comment_status( $comment ), array( 'trash', 'spam' ), true ) ) {
		return wp_trash_comment( $comment_id );
	}

	/**
	 * Fires immediately before a comment is deleted from the database.
	 *
	 * @since 1.2.0
	 * @since 4.9.0 Added the `$comment` parameter.
	 *
	 * @param string     $comment_id The comment ID as a numeric string.
	 * @param WP_Comment $comment    The comment to be deleted.
	 */
	do_action( 'delete_comment', $comment->comment_ID, $comment );

	// Move children up a level.
	$children = $wpdb->get_col( $wpdb->prepare( "SELECT comment_ID FROM $wpdb->comments WHERE comment_parent = %d", $comment->comment_ID ) );
	if ( ! empty( $children ) ) {
		$wpdb->update( $wpdb->comments, array( 'comment_parent' => $comment->comment_parent ), array( 'comment_parent' => $comment->comment_ID ) );
		clean_comment_cache( $children );
	}

	// Delete metadata.
	$meta_ids = $wpdb->get_col( $wpdb->prepare( "SELECT meta_id FROM $wpdb->commentmeta WHERE comment_id = %d", $comment->comment_ID ) );
	foreach ( $meta_ids as $mid ) {
		delete_metadata_by_mid( 'comment', $mid );
	}

	if ( ! $wpdb->delete( $wpdb->comments, array( 'comment_ID' => $comment->comment_ID ) ) ) {
		return false;
	}

	/**
	 * Fires immediately after a comment is deleted from the database.
	 *
	 * @since 2.9.0
	 * @since 4.9.0 Added the `$comment` parameter.
	 *
	 * @param string     $comment_id The comment ID as a numeric string.
	 * @param WP_Comment $comment    The deleted comment.
	 */
	do_action( 'deleted_comment', $comment->comment_ID, $comment );

	$post_id = $comment->comment_post_ID;
	if ( $post_id && '1' === $comment->comment_approved ) {
		wp_update_comment_count( $post_id );
	}

	clean_comment_cache( $comment->comment_ID );

	/** This action is documented in wp-includes/comment.php */
	do_action( 'wp_set_comment_status', $comment->comment_ID, 'delete' );

	wp_transition_comment_status( 'delete', $comment->comment_approved, $comment );

	return true;
}
```

## История изменений

- 2.0.0 — Introduced.

## Связанные

Использует: `wpdb::get_col`, `wpdb::update`, `wpdb::delete`, [`clean_comment_cache`](https://chugunov.pro/api-wordpress/functions/clean_comment_cache/), [`wp_update_comment_count`](https://chugunov.pro/api-wordpress/functions/wp_update_comment_count/), [`wp_get_comment_status`](https://chugunov.pro/api-wordpress/functions/wp_get_comment_status/), [`wp_transition_comment_status`](https://chugunov.pro/api-wordpress/functions/wp_transition_comment_status/), [`wp_trash_comment`](https://chugunov.pro/api-wordpress/functions/wp_trash_comment/), [`delete_metadata_by_mid`](https://chugunov.pro/api-wordpress/functions/delete_metadata_by_mid/), [`do_action`](https://chugunov.pro/api-wordpress/functions/do_action/), `wpdb::prepare`, [`get_comment`](https://chugunov.pro/api-wordpress/functions/get_comment/).
Используется в: `WP_REST_Comments_Controller::delete_item`, [`wp_ajax_delete_comment`](https://chugunov.pro/api-wordpress/functions/wp_ajax_delete_comment/), [`wp_scheduled_delete`](https://chugunov.pro/api-wordpress/functions/wp_scheduled_delete/), [`wp_delete_attachment`](https://chugunov.pro/api-wordpress/functions/wp_delete_attachment/), [`wp_delete_post`](https://chugunov.pro/api-wordpress/functions/wp_delete_post/), `wp_xmlrpc_server::wp_deleteComment`, [`wp_trash_comment`](https://chugunov.pro/api-wordpress/functions/wp_trash_comment/).

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/wp_delete_comment/
