WP_DELETE_AUTO_DRAFTS() │ WP 3.4.0
Функция WP_DELETE_AUTO_DRAFTS удаляет авто-сохраненные черновики (или авто-драфты) для новых постов, которым более 7 дней.
Описание функции
Эта функция получает все авто-драфты, старше 7 дней, и полностью удаляет их с помощью функции wp_delete_post().
Каждый день функция запускается автоматически с помощью планировщика заданий WordPress (cron) через функцию wp_schedule_event().
Как работает функция
Чтобы функция работала, WordPress сначала проверяет, запланировано ли выполнение удаления авто-драфтов:
// файл 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' );
Параметры
Функция не принимает никаких параметров.
Возвращаемое значение
Функция не возвращает ничего (null).
Как использовать функцию
Чтобы использовать эту функцию, просто введите в коде:
wp_delete_auto_drafts();
Пример использования
Удаление всех авто-драфтов
Поскольку функция не имеет параметров, использовать её можно лишь одним способом:
wp_delete_auto_drafts();
Примечания
- Глобальная переменная:
$wpdb— это объект абстракции базы данных WordPress.
Изменения
Функция была введена в версии 3.4.0.
Код функции
Вот текст функции для понимания, как она работает:
// файл wp-includes/post.php
function wp_delete_auto_drafts() {
global $wpdb;
// Удаление старых авто-драфтов, которым более 7 дней.
$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 ) {
// Принудительное удаление.
wp_delete_post( $delete, true );
}
}
Функция выполняет запрос к базе данных, чтобы найти все посты со статусом auto-draft, которым более 7 дней, и затем удаляет их.
Связанные функции
Кроны (планировщики)
Вот некоторые функции, которые могут быть полезны при работе с планировщиками в WordPress:
wp_clear_scheduled_hook()wp_cron()wp_get_schedules()wp_next_scheduled()wp_schedule_event()wp_schedule_single_event()wp_unschedule_event()wp_unschedule_hook()
Ревизии
Если вы хотите работать с ревизиями постов, вы можете обратиться к следующим функциям:
wp_delete_post_revision()wp_get_post_revision()wp_get_post_revisions()wp_is_post_autosave()wp_is_post_revision()wp_revisions_enabled()wp_revisions_to_keep()wp_save_post_revision()wp_text_diff()
Эти функции могут помочь вам управлять изменениями и сохранениями ваших постов в WordPress, делая работу с контентом более удобной.