wp_delete_auto_drafts()
Видаляє авто-чернетки (записи зі статусом 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()
wp_delete_post()
Хуків немає.
Повертає
null
. Нічого.
Використання
wp_delete_auto_drafts();
Приклади
#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);
}
}