Статьи

Начало работы с API WordPress Transient, часть 1

Одна из самых приятных вещей в работе с WordPress — мощь его API. При создании тем и / или плагинов платформа невероятно легко сериализует и извлекает данные. На самом деле API абстрагирует многие из общих проблем работы с данными, таких как очистка данных и эффективное извлечение данных по запросу. В следующих двух постах мы рассмотрим API-интерфейс Transient, почему оно имеет значение, как его использовать, а также рассмотрим практическую реализацию, которую мы можем использовать в будущих проектах.

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


Проще говоря, API Transients предоставляет способ хранения информации в базе данных WordPress со сроком действия. При сохранении информации с использованием API параметров значения сохраняются с использованием ключа и значения.

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

Разница в способе, которым API-интерфейс Transient сохраняет свою информацию, состоит в том, что третий фрагмент данных — время истечения — сохраняется в базе данных. Это ключ к повышению производительности, а именно кеширования.

Кроме того, данные, сохраненные через API (называемые переходными процессами), используются плагинами для кэширования и программным обеспечением для кэширования, тогда как стандартные параметры WordPress — нет. Например, когда вы сохраняете значение с помощью API Transients, программное обеспечение для кэширования, такое как memcached, будет инструктировать WordPress хранить значения таким образом, чтобы оно могло легко извлекать его при каждом запросе страницы, а не попадать в базу данных каждый раз.

Круто, да?

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

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

Как бы ни было полезно понимание API, реальное преимущество заключается в его использовании.


Приятной особенностью API Transient является то, что он очень хорошо реализован с тремя функциями, две из которых вы будете регулярно использовать. Три основных операции для переходных процессов — установка значений, получение значений и удаление значений.

Сохранение переходного процесса требует трех конкретных частей информации:

  • Ключ, который будет использоваться для получения значения
  • Значение для сериализации
  • Время (в секундах) хранения данных перед их обновлением

Суть метода заключается в следующем:

  • set_transient ($ key, $ value, $ expiration);

Легко, верно? Простой пример вызова этой функции:

1
set_transient(‘twitter’, ‘MoreTom’, 60 * 60 * 12);

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

Подпись метода, ответственного за возврат значения:

  • get_transient ($ ключ);

Следуя приведенному выше примеру, мы получили бы имя пользователя Twitter, вызвав его:

1
get_transient(‘twitter’);

Просто, да?

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

В этом случае вы можете воспользоваться функцией delete_transient:

  • delete_transient ($ ключ);

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

1
delete_transient(‘twitter’);

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

Очевидно, что выигрыш в производительности приносит дивиденды по сравнению с тем, насколько сложно использовать преимущества API. Пожалуй, самое важное, что следует помнить, это то, что вы не хотите хранить каждое значение параметра с помощью API Transients — только те, которые являются самыми дорогими и редко меняются.

В следующем посте мы увидим практическую реализацию API, создав плагин, который использует API.