Удаление временных данных в 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. Она позволяет поддерживать чистоту базы данных и повышать производительность вашего сайта. Используйте данную функцию, когда вам нужно удалить устаревшие или ненужные данные, чтобы ваш сайт работал быстрее и эффективнее.