wp_untrash_post_comments

Definition:
function wp_untrash_post_comments($post = null) {}

Restore comments for a post from the trash

Parameters

  • int $post: Post ID or object.

Return values

returns:False on failure

Defined actions

  • untrash_post_comments
    do_action('untrash_post_comments', $post_id);
  • untrashed_post_comments
    do_action('untrashed_post_comments', $post_id);

Source code

function wp_untrash_post_comments($post = null) {

	global $wpdb;



	$post = get_post($post);

	if ( empty($post) )

		return;



	$post_id = $post->ID;



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



	if ( empty($statuses) )

		return true;



	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( "', '", $comments );

		$wpdb->query( "UPDATE $wpdb->comments SET comment_approved = '$status' WHERE comment_ID IN ('" . $comments_in . "')" );

	}



	clean_comment_cache( array_keys($statuses) );



	delete_post_meta($post_id, '_wp_trash_meta_comments_status');



	do_action('untrashed_post_comments', $post_id);

}

4209

Advertisements

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 )

Google+ photo

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

Connecting to %s

%d bloggers like this: