wp_scheduled_delete

Definition:
function wp_scheduled_delete() {}

Permanently deletes posts, pages, attachments, and comments which have been in the trash for EMPTY_TRASH_DAYS.

Source code

function wp_scheduled_delete() {

	global $wpdb;



	$delete_timestamp = time() - (60*60*24*EMPTY_TRASH_DAYS);



	$posts_to_delete = $wpdb->get_results($wpdb->prepare("SELECT post_id FROM $wpdb->postmeta WHERE meta_key = '_wp_trash_meta_time' AND meta_value < '%d'", $delete_timestamp), ARRAY_A);



	foreach ( (array) $posts_to_delete as $post ) {

		$post_id = (int) $post['post_id'];

		if ( !$post_id )

			continue;



		$del_post = get_post($post_id);



		if ( !$del_post || 'trash' != $del_post->post_status ) {

			delete_post_meta($post_id, '_wp_trash_meta_status');

			delete_post_meta($post_id, '_wp_trash_meta_time');

		} else {

			wp_delete_post($post_id);

		}

	}



	$comments_to_delete = $wpdb->get_results($wpdb->prepare("SELECT comment_id FROM $wpdb->commentmeta WHERE meta_key = '_wp_trash_meta_time' AND meta_value < '%d'", $delete_timestamp), ARRAY_A);



	foreach ( (array) $comments_to_delete as $comment ) {

		$comment_id = (int) $comment['comment_id'];

		if ( !$comment_id )

			continue;



		$del_comment = get_comment($comment_id);



		if ( !$del_comment || 'trash' != $del_comment->comment_approved ) {

			delete_comment_meta($comment_id, '_wp_trash_meta_time');

			delete_comment_meta($comment_id, '_wp_trash_meta_status');

		} else {

			wp_delete_comment($comment_id);

		}

	}

}

4085

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 )

Facebook photo

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

Connecting to %s

%d bloggers like this: