Удаление авто-черновиков в WordPress: WP_DELETE_AUTO_DRAFTS()

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, делая работу с контентом более удобной.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *