wp_trash_post_comments() – Moves comments for a post to the Trash.

You appear to be a bot. Output may be restricted

Description

Moves comments for a post to the Trash.

Usage

$mixed|void = wp_trash_post_comments( $post );

Parameters

$post
( int|WP_Post|null ) optional – Optional. Post ID or post object. Defaults to global $post.

Returns

mixed|void False on failure.

Source

File name: wordpress/wp-includes/post.php
Lines:

1 to 50 of 50
function wp_trash_post_comments( $post = null ) {
  global $wpdb;

  $post = get_post( $post );

  if ( ! $post ) {
    return;
  }

  $post_id = $post->ID;

  
/**
 * Fires before comments are sent to the Trash.
 *
 * @since 2.9.0
 *
 * @param int $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 ( ! $comments ) {
    return;
  }

  // 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 ) );

  
/**
 * Fires after comments are sent to the Trash.
 *
 * @since 2.9.0
 *
 * @param int   $post_id  Post ID.
 * @param array $statuses Array of comment statuses.
 */
  do_action( 'trashed_post_comments', $post_id, $statuses );

  return $result;
}
 

 View on GitHub View on Trac