Когда дело доходит до создания веб-приложения с WordPress, его мощные API предоставляют большую помощь. Добавление или получение любых данных с помощью API параметров не имеет большого значения. Но иногда нам нужно хранить временные данные со сроком действия.
WordPress предлагает интуитивно понятное кеширование через переходные процессы, чтобы сделать это, то есть хранить временные данные со сроком действия. Мы собираемся использовать переходные процессы, поэтому я подумал, почему бы не взглянуть по-новому на API WordPress Transients в этой статье.
Согласно Кодексу WordPress :
API Transients очень похож на API Options, но с добавленной функцией времени истечения, которая упрощает процесс использования таблицы базы данных wp_options для временного хранения кэшированной информации.
В рамках этой серии переходные процессы обеспечивают эффективный способ перенаправления пользователей на страницу приветствия, когда они активируют плагин путем хранения временных данных.
В этой статье мы рассмотрим концепцию API переходных процессов в WordPress и ее отличие от API параметров. Итак, давайте вернемся к этому.
API переходных процессов
Переходные процессы предоставляют нам способы временного хранения кэшированной информации, предоставляя пользовательское имя (пары ключ-значение) и время истечения срока действия. По истечении определенного периода времени переходные процессы истекают и удаляются. Эти переходные процессы улучшают производительность и ускоряют общую производительность веб-приложения.
Но возникает вопрос: является ли время истечения единственной причиной использования WP Transient API?
Ответ — нет! Несмотря на то, что API параметров выполняет те же функции хранения, очистки и извлечения данных, он может не обеспечивать наилучшую возможную производительность при работе с большими наборами данных.
С добавлением временного интервала переходные процессы становятся наиболее подходящим способом временного хранения данных. Чтобы обеспечить меньшее количество веб-запросов, транзиенты имеют возможность хранить данные в быстрой памяти, например Memcached , вместо традиционной базы данных WordPress. Также следует отметить, что переходные процессы по своей сути ускоряются плагинами кэширования, а обычные параметры — нет. Как указано в кодексе:
Например, плагин Memcached позволит WordPress хранить временные значения в быстрой памяти, а не в базе данных. По этой причине переходные процессы должны использоваться для хранения любых данных, срок действия которых ожидается или может истечь в любое время. Не следует также предполагать, что переходные процессы находятся в базе данных, поскольку они могут вообще там не храниться.
Поэтому всякий раз, когда вам требуется функциональность, которая истекает или удаляется после определенного промежутка времени, используйте переходные процессы вместо опций. Подробнее об этом позже.
Использование переходных процессов
Переходные процессы работают с невероятно простым интерфейсом. Вы можете выполнять с ними три основные функции:
- создание / обновление переходного процесса с помощью функции
set_transient()
- получение переходного процесса с помощью функции
get_transient()
- удаление переходного процесса с помощью функции
delete_transient()
Эти три основные операции могут помочь вам повысить производительность сети.
1. Создание / обновление переходного процесса
Используйте set_transient()
для создания или обновления любого переходного процесса. Функция принимает три параметра:
- Ключ : (введите
string
) Имя переходного процесса. Длина должна быть не более 172 символов. - Значение : (тип
mixed
) Это данные, которые должны быть сохранены. Может быть переменной PHP или объектом массива. - Срок действия : (введите
int
) Максимальное время до истечения срока в секундах. По умолчанию 0 (нет срока действия).
Указать на размышление: дата истечения срока, которую вы устанавливаете, — это максимальное количество времени, в течение которого будет храниться переходный процесс. По истечении этого времени переходный процесс удаляется. Но он также может быть удален до этого времени. Поскольку он является частью кэша, он может быть удален пользователем до этого времени. Таким образом, всегда думайте о времени истечения как о максимальном промежутке времени жизни переходного процесса только с гарантией, что он будет удален после этого.
1
|
<?php set_transient( string $transient, mixed $value, int $expiration ) ?>
|
Первые два параметра являются парой ключ-значение и являются обязательными, в то время как третий параметр, который определяет максимальное время истечения, является необязательным.
Практический пример вызова этой функции:
1
2
3
4
|
<?php
// Transient max age is 60 seconds.
set_transient( ‘_welcome_redirect_wpw’, true, 60 );
?>
|
Постоянные времени в переходных процессах
В приведенном выше примере я добавил 60 секунд в качестве третьего параметра, который определяет время истечения, после которого переходный процесс удаляется. Согласно приведенному выше примеру, объект _welcome_redirect_wpw
может иметь максимальный возраст не более 60 секунд.
В WordPress 3.5 было введено несколько констант для простого выражения времени. Эти константы делают код более полным и точным. Вот список:
1
2
3
4
5
|
MINUTE_IN_SECONDS = 60 (seconds)
HOUR_IN_SECONDS = 60 * MINUTE_IN_SECONDS
DAY_IN_SECONDS = 24 * HOUR_IN_SECONDS
WEEK_IN_SECONDS = 7 * DAY_IN_SECONDS
YEAR_IN_SECONDS = 365 * DAY_IN_SECONDS
|
2. Извлечение переходного процесса
После сохранения значения с помощью функции set_transient()
вы можете получить значение, вызвав get_transient()
.
Он принимает один параметр — ключ (то есть имя) переходного процесса $transient
и возвращает значение (тип mixed
) переходного процесса.
Стандартный формат:
1
|
<?php get_transient( string $transient );
|
В нашем примере значение выбирается через:
1
|
<?php get_transient( ‘_welcome_redirect_wpw’ );
|
Довольно просто? Но что произойдет, если переходный процесс не существует или истек? Если это так, то get_transient()
возвращает false
значение.
Я рекомендую вам использовать оператор идентификации ( ===
), когда вы получаете значение переходного процесса, чтобы проверить, является ли оно ложным или нет.
$ a === $ b | идентичный | TRUE если $ a равно $ b, и они одного типа. |
3. Удаление переходного процесса
Могут возникнуть ситуации, когда вы захотите удалить переходные процессы до истечения срока их действия. Функция delete_transient()
поможет вам в этом. Его формат подобен функции get_transient()
.
Он принимает один параметр — ключ (то есть имя) переходного процесса $transient
и окончательно удаляет переходный процесс.
Вот общий формат:
1
|
<?php delete_transient( string $transient );
|
В нашем случае мы можем удалить его так:
1
2
3
4
|
<?php
// Delete the redirect transient.
delete_transient( ‘_welcome_redirect_wpw’ );
?>
|
Использование переходных процессов
Переходные процессы могут использоваться для кэширования чего угодно, от самого основного типа данных до полного виджета. С момента запуска переходные процессы используются в различных веб-проектах. Вот несколько практических примеров использования переходных процессов:
- Конечно, вы можете использовать их на странице приветствия вашего плагина, которая является целью этой серии.
- Вы можете использовать их в виджете боковой панели, в котором перечислены данные, такие как топовые комментарии блога, сообщения и т. Д.
- Вы можете ускорить навигационные меню WordPress с переходными процессами.
- Вы можете кэшировать облако тегов с переходными процессами.
Вывод
Мы все закончили с основами API WordPress Transients. В следующих двух статьях я собираюсь создать страницу приветствия для плагина WordPress. Я вложу свои грубые мысли во что-то более осмысленное и практичное.
Наконец, вы можете просмотреть все мои курсы и учебные пособия на странице моего профиля , а также подписаться на меня в моем блоге и / или обратиться в Twitter @mrahmadawais, где я пишу о рабочих процессах разработки в контексте WordPress.
Как обычно, не стесняйтесь оставлять любые вопросы или комментарии ниже, и я постараюсь ответить на каждый из них.