wp_trash_post_comments( int|WP_Post|null $post = null )
Moves comments for a post to the trash.
Parameters
- $post
-
(Optional) Post ID or post object. Defaults to global $post.
Default value: null
Return
(mixed|void) False on failure.
Source
File: wp-includes/post.php
function wp_trash_post_comments( $post = null ) {
global $wpdb;
$post = get_post($post);
if ( empty($post) )
return;
$post_id = $post->ID;
/**
* Fires before comments are sent to the trash.
*
* @since WP-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 ( empty($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 WP-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;
}
Changelog
Version | Description |
---|---|
WP-2.9.0 | Introduced. |