Transients API: Часть 1. Использование Transients в WordPress

Дата публикации:Март 1, 2014

Transients – вряд ли то, что находится у вас «на радарах», когда вы только начинаете разработку различных решений в WordPress. Однако по мере роста своего опыта вы обязательно с ними столкнетесь и поймете, что вам необходимо использовать их. Хочется надеяться, что в вашем случае это произойдет раньше, чем у меня, поскольку мне пришлось учиться на своем горьком опыте, поднимая с колен свой сайт из-за сложных, повторяющихся запросов к базе данных.

Transients – что это и почему это стоит использовать

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

Почему стоит обращаться к transients? Вообще, стоит помнить, что вы можете совершать сложные запросы к базе данных WordPress, и эти запросы требуют времени для своего выполнения. Вместо того чтобы повторять их при каждой загрузке страницы, вы можете сохранить информацию в кэше, чтобы ее можно было легко и быстро восстановить. Представьте себе: у вас есть некоторые файлы, к которым вы ежедневно обращаетесь, причем эти файлы разбросаны по всему компьютеру. Вместо поиска их каждое утро вы можете создать специальную папку, в которой будут содержаться ссылки на все эти файлы, поэтому доступ к ним будет более оперативным. Собственно, примерно так и работают transients.

Несколько примечаний по поводу transients в WordPress:

  • Они предназначены строго для временных данных. Не используется transients, если потеря данных может стать проблематичной для вас.
  • Вы определяете, сколько времени transients должны храниться, но учтите: никто не гарантирует вам, что эти данные будут удалены или обновлены по прошествии четко заданного времени. Каждый раз при запросе transient происходит проверка времени истечения, и если это время прошло, то transient удаляется (и повторно кэшируется, если это указано в вашем коде).
  • По моему мнению, вы должны всегда задавать время истечения: если вы не задаете этот показатель, то в таком случае данные не являются временными, а значит не должны сохраняться таким образом.

Функции transients API

Если вы решили работать с transients, то вам нужно знать три основных функции, которые очень просты в использовании:

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

Как использовать transients

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

Источник: doitwithwp.com

Поделиться

Оставить комментарий

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

Получать новые комментарии по электронной почте. Вы можете подписаться без комментирования.