function wp_trash_post_comments($post = null) {}

Moves comments for a post to the trash


  • int $post: Post ID or object.

Return values

returns:False on failure

Defined actions

  • trash_post_comments
    do_action('trash_post_comments', $post_id);
  • trashed_post_comments
    do_action('trashed_post_comments', $post_id, $statuses);

Source code

function wp_trash_post_comments($post = null) {

	global $wpdb;

	$post = get_post($post);

	if ( empty($post) )


	$post_id = $post->ID;

	do_action('trash_post_comments', $post_id);

	$comments = $wpdb->get_results( $wpdb->prepare("SELECT comment_ID, comment_approved FROM $wpdb->comments WHERE comment_post_ID = %d", $post_id) );

	if ( empty($comments) )


	// Cache current status for each comment

	$statuses = array();

	foreach ( $comments as $comment )

		$statuses[$comment->comment_ID] = $comment->comment_approved;

	add_post_meta($post_id, '_wp_trash_meta_comments_status', $statuses);

	// Set status for all comments to post-trashed

	$result = $wpdb->update($wpdb->comments, array('comment_approved' => 'post-trashed'), array('comment_post_ID' => $post_id));

	clean_comment_cache( array_keys($statuses) );

	do_action('trashed_post_comments', $post_id, $statuses);

	return $result;



No comments yet... Be the first to leave a reply!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: