wp_delete_auto_drafts() WP 3.4.0

Видаляє авто-чернетки (записи зі статусом auto-drafts ) віком понад 7 днів.

Запис із статусом auto-drafts створюється відразу при заході на сторінку додавання запису. Далі, при першому збереженні цей статус змінюється на draft .

Функція запитом збирає ID всіх auto-draft з post_date більше 7 днів і видаляє їх за допомогою wp_delete_post() , минаючи кошик.

У движку функція wp_schedule_event() .

// файл wp-admin/post-new.php:66
if ( ! wp_next_scheduled( 'wp_scheduled_auto_draft_delete' ) ) {
	wp_schedule_event( time(), 'daily', 'wp_scheduled_auto_draft_delete');
}

// файл wp-includes/default-filters.php:325
add_action( 'wp_scheduled_auto_draft_delete', 'wp_delete_auto_drafts');
Працює на основі:
wp_delete_post()

Хуків немає.

Повертає

null. Нічого.

Використання

wp_delete_auto_drafts();

Приклади

0

#1 Видалити всі авто-чернетки

Функція не має параметрів, тому варіант використання лише один:

wp_delete_auto_drafts();

нотатки

  • Global. wpdb. $wpdb WordPress database abstraction object.

список змін

З версії 3.4.0Введено.

wp delete auto drafts WP 6.0.2

function wp_delete_auto_drafts() {
	Global $wpdb;

	// Cleanup old auto-drafts більше 7 days old.
	$old_posts = $wpdb->get_col( "SELECT ID FROM $wpdb->posts WHERE post_status = 'auto-draft' AND DATE_SUB( NOW(), INTERVAL 7 DAY ) > post_date" );
	foreach ((array) $old_posts as $delete) {
		/ / Force delete.
		wp_delete_post($ delete, true);
	}
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *