Удаление временных данных в WordPress: функция DELETE_TRANSIENT()

Удаление временных данных в WordPress с помощью функции DELETE_TRANSIENT()

В этой статье мы рассмотрим функцию DELETE_TRANSIENT(), которая появилась в WordPress начиная с версии 2.8.0. Эта функция используется для удаления временных данных, которые могут быть полезны для оптимизации производительности вашего сайта.

Основная информация

Что такое временные данные?

Временные данные (transients) — это временные опции в WordPress, которые хранят информацию на короткий срок. Это нужно для уменьшения нагрузки на базу данных, поскольку вы можете хранить результаты сложных запросов и быстро их извлекать. Если данные устаревают, их автоматически удаляют.

Как работает функция DELETE_TRANSIENT?

Функция delete_transient() удаляет временные данные по заданному имени.

Синтаксис

delete_transient( $transient );
  • $transient (string) — название временных данных, которые вы хотите удалить. Имя не должно содержать SQL-экранирования.

Возвращаемое значение

Функция возвращает true, если временные данные были успешно удалены, и false, если произошла ошибка.

Пример использования

Удаление временных опций

Ниже приведен пример, как удалить временные данные при редактировании категории или тега:

// Добавим эту функцию к событию edit_term, 
// которое срабатывает при редактировании категории или тега
add_action( 'edit_term', 'edit_term_delete_transient' );

// Создаем простую функцию для удаления временной опции
function edit_term_delete_transient() {
    delete_transient( 'special_query_results' );
}

В этом примере временные данные с именем special_query_results содержат результаты SQL-запроса. Эти данные будут извлекаться до тех пор, пока вы не отредактируете тег или категорию. В этом случае результаты запроса будут пересохранены.

Как работает код?

В коде добавляется функция edit_term_delete_transient() к событию edit_term, которое вызывается при редактировании термина (категории или тега). Когда такое событие происходит, функция delete_transient() удаляет временные данные, связанные с указанным именем.

Как выглядит код функции DELETE_TRANSIENT?

Вот как реализована функция delete_transient() в ядре WordPress:

function delete_transient( $transient ) {
    do_action( "delete_transient_{$transient}", $transient );

    if ( wp_using_ext_object_cache() || wp_installing() ) {
        $result = wp_cache_delete( $transient, 'transient' );
    } else {
        $option_timeout = '_transient_timeout_' . $transient;
        $option         = '_transient_' . $transient;
        $result         = delete_option( $option );

        if ( $result ) {
            delete_option( $option_timeout );
        }
    }

    if ( $result ) {
        do_action( 'deleted_transient', $transient );
    }

    return $result;
}

Основные моменты функции:

  • do_action: Запускает событие, перед удалением временных данных.
  • wp_cache_delete(): Удаляет временные данные из кэша, если он используется.
  • delete_option(): Удаляе�� временные данные из базы данных.
  • @return: Возвращает результат удаления.

Заключение

Функция delete_transient() — это мощный инструмент для управления временными данными в WordPress. Она позволяет поддерживать чистоту базы данных и повышать производительность вашего сайта. Используйте данную функцию, когда вам нужно удалить устаревшие или ненужные данные, чтобы ваш сайт работал быстрее и эффективнее.

Leave a Reply

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