wp_untrash_post_comments() – Restore comments for a post from the Trash.

You appear to be a bot. Output may be restricted

Description

Restores comments for a post from the Trash.

Usage

$true|void = wp_untrash_post_comments( $post );

Parameters

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

Returns

true|void

Source

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

1 to 54 of 54
function wp_untrash_post_comments( $post = null ) {
  global $wpdb;

  $post = get_post( $post );

  if ( ! $post ) {
    return;
  }

  $post_id = $post->ID;

  $statuses = get_post_meta( $post_id, '_wp_trash_meta_comments_status', true );

  if ( ! $statuses ) {
    return true;
  }

  
/**
 * Fires before comments are restored for a post from the Trash.
 *
 * @since 2.9.0
 *
 * @param int $post_id Post ID.
 */
  do_action( 'untrash_post_comments', $post_id );

  // Restore each comment to its original status.
  $group_by_status = array();
  foreach ( $statuses as $comment_id => $comment_status ) {
    $group_by_status[ $comment_status ][] = $comment_id;
  }

  foreach ( $group_by_status as $status => $comments ) {
    // Sanity check. This shouldn't happen.
    if ( 'post-trashed' === $status ) {
      $status = '0';
    }
    $comments_in = implode( ', ', array_map( 'intval', $comments ) );
    $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->comments SET comment_approved = %s WHERE comment_ID IN ($comments_in)", $status ) );
  }

  clean_comment_cache( array_keys( $statuses ) );

  delete_post_meta( $post_id, '_wp_trash_meta_comments_status' );

  
/**
 * Fires after comments are restored for a post from the Trash.
 *
 * @since 2.9.0
 *
 * @param int $post_id Post ID.
 */
  do_action( 'untrashed_post_comments', $post_id );
}
 

 View on GitHub View on Trac