Advertisement
  1. Code
  2. WordPress

Создаем страницу приветствия для вашего продукта WordPress: Transients API (интерфейс транзитного/временного кэширования)

by
Read Time:6 minsLanguages:
This post is part of a series called Building a Welcome Page for Your WordPress Product.
Building a Welcome Page for Your WordPress Product: Introduction
Building a Welcome Page for Your WordPress Product: Code Part 1

Russian (Pусский) translation by Sergey Zhuk (you can also view the original English article)

Что касается сознания веб-приложений на WordPress, его мощные интерфейсы API предоставляют большую помощь. Добавление или извлечение данных с помощью Options API не является большим делом. На иногда нам нужно разместить на короткий срок временные данные.

Для этого WordPress предлагает интуитивное кэширование через интерфейс Transients, а именно, хранения временных данных с истечением срока. Мы будем использовать транзитное кэширование, так что я подумал, почему бы не взглянуть еще раз на интерфейс транзитного кэширования WordPress.

Согласно WordPress Codex:

API Transients очень похож на Options API  но с добавленной функцией времени истечения, что упрощает процесс использования таблицы базы данных wp_options для временного хранения кэшированной информации.

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

В этой статье мы рассмотрим концепцию Transients API в WordPress и то, как она отличается от API опций. Итак, давайте займемся этим.

API переходных процессов

Транзиенты предоставляют нам способы временного хранения кэшированной информации, предоставляя настраиваемое имя (пары «ключ-значение») и время истечения. По истечении заданного периода времени переходные процессы истекают и удаляются. Эти переходные процессы повышают производительность и ускоряют общую производительность веб-приложений.

Но возникает вопрос: является ли время окончания срока действия единственной причиной использования WP Transient API?

Ответ - нет! Несмотря на то, что API опций служит той же цели хранения, очистки и поиска данных, он может не обеспечить наилучшую производительность с большими наборами данных.

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

Например, плагин Memcached заставит WordPress сохранять временные значения в быстрой памяти, а не в базе данных. По этой причине переходные процессы должны использоваться для хранения любых данных, срок действия которых истекает, или срок действия которых может быть исчерпан в любое время. Транзиенты также никогда не должны быть включены в базу данных, поскольку они могут вообще не храниться там.

Поэтому, когда вам требуется функциональность, которая истекает или удаляется после определенного промежутка времени, используйте переходные процессы вместо опций. Подробнее об этом позже.

Использование переходных процессов

Транзиенты работают с невероятно простым интерфейсом. Вы можете выполнять с ними три основные функции:

  • Создание/обновление переходного процесса с помощью функции set_transient()
  • Получение переходного процесса с помощью функции get_transient()
  • Удаление переходного процесса с помощью функции delete_transient()

Эти три основные операции могут помочь вам повысить производительность сети.

1. Создание/обновление переходного процесса

Используйте функцию set_transient() для создания или обновления любого переходного процесса. Эта функция принимает три параметра:

  • Key: (тип string) Имя переходного процесса. Длина не должна превышать 172 символа.
  • Value: (тип mixed) Это данные, которые необходимо сохранить. Может быть переменной PHP или объектом массива.
  • Expiration: (тип int) Максимальное время до истечения в секундах. По умолчанию 0 (нет срока действия).

Point to Ponder: Дата истечения срока действия, которую вы устанавливаете, является максимальным временем, в течение которого будет сохранен переходный процесс. По истечении этого времени переходной процесс удаляется. Но до этого момента его можно удалить. Поскольку он является частью кеша, он может быть удален пользователем до этого времени. Поэтому всегда думайте о времени истечения как о максимальном времени жизни переходного процесса, с гарантией, что оно будет удалено после этого.

Первые два параметра являются парой ключ-значение и являются обязательными, а третий параметр, который определяет максимальное время до истечения срока, является необязательным.

Практический пример вызова этой функции выглядит следующим образом:

Временные константы в переходных процессах

В приведенном выше примере я добавил 60 секунд в качестве третьего параметра, который определяет время истечения, после которого переходный процесс удаляется. В соответствии с вышеприведенным примером, объект _welcome_redirect_wpw может иметь только максимальный возраст 60 секунд.

В WordPress 3.5 было введено несколько констант, чтобы легко выразить время. Эти константы делают код более полным и точным. Вот список:

2. Получение переходного процесса

После сохранения значения с помощью функции set_transient() вы можете получить значение, вызвав функцию get_transient().

Он принимает единственный параметр - ключ (то есть имя) переходного процесса $transient и возвращает значение (mixed) типа переходного процесса.

Стандартный формат:

В нашем примере это значение выбирается с помощью:

Довольно просто? Но что произойдет, если переходный процесс не существует или истек? Если это так, то функция get_transient() возвращает значение false.

Я рекомендую вам использовать оператор тождества (===), когда вы получаете значение переходного процесса для проверки, является ли оно ложным или нет.

$a===$b Идентичные TRUE, если $a равно $b, и они одного типа.

3. Удаление переходного процесса

Могут возникнуть ситуации, когда вы можете удалить переходные процессы до истечения срока их действия. Функция delete_transient() помогает вам в этом. Его формат аналогичен функции get_transient().

Он принимает единственный параметр - ключ (то есть имя) переходного процесса $transient и постоянно удаляет переходный процесс.

Вот общий формат:

В нашем случае мы можем удалить его следующим образом:

Использование переходных процессов

Транзиенты можно использовать для кэширования всего от базового типа данных до полного виджета. С момента их запуска переходные процессы были использованы в различных веб-проектах. Вот несколько практических применений переходных процессов:

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

Заключение

Мы все закончили с основами WordPress Transients API. В следующих двух статьях я собираюсь создать страницу приветствия для плагина WordPress. Я оберну свои грубые мысли во что-то более содержательное и практичное.

Наконец, вы можете поймать все мои курсы и учебные материалы на моей странице в моем профиле, и вы можете следовать за мной в моем блоге и/или обратиться в Twitter @mrahmadawais, где я пишу о рабочих процессах разработки в контексте WordPress.

Как обычно, не стесняйтесь оставлять любые вопросы или комментарии ниже, и я постараюсь ответить на каждый из них.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.