Публикация в группе: Плагин WP-Recall - Личный кабинет на WordPress

Категории группы: Полезное

Добавлено в закладки: 2

В 14-ой версии в плагин WP-Recall был введен свой функционал кеширования.

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

Следует знать, что данное кеширование является объектным, т.е. кешируется не вся страница, а только указанный участок кода. Для каждого объекта кеширования создается свой кеш-файл.

Использование по-умолчанию

Разработчикам дополнений к плагину для поддержки функционала кеширования при формировании вкладки личного кабинета через функцию rcl_tab() следует указывать дополнительную опцию 'cache' в значении true, например:

Для кеширования вывода контента, формируемого через сторонние шорткоды от других плагинов или самого шаблона становится возможным использовать отдельный шорткод кеширования [ rcl-cache ], в котором через необязательные атрибуты можно указывать:

  • time - время кеширования
  • key - уникальный ключ кеширования
  • only_guest - кеширование только для неавторизованных посетителей сайта

Например:

Следует знать, что использование шорткода кеширования бессмысленно в php-коде, так как, в этом случае, php-код размещенный внутри шорткода все равно будет отрабатывать.

Также следует учитывать, что контент формируемый шорткодом userlist автоматически кешируется при включении функционала кеширования от плагина и его дополнительное кеширование не требуется.

Кастомное кеширование

Рассмотрим порядок использования функционала кеширования плагина внутри php-кода.

Общий принцип:

  1. Перед кешируемым кодом проверяем наличие кеша и его актуальность
  2. Если кеш актуален и не требует обновления, то возвращаем его до работы кешируемого кода
  3. Если кеш-файл отсутствует или устарел, то отрабатывает кешируемый код и возвращает результат работы в переменную
  4. Отдаем результат работы кешируемого кода, сформированную переменную в кеш, создаем или обновляем файл кеширования
  5. Возвращаем результат работы кешируемого кода

Приступим к практическому применению:

Это основы использования функционала кеширования.

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

Если же нам необходимо кешировать данный контент только для гостей, независимо от общих настроек кеширования, то передаем вторым параметром значение true:

Принудительное обновление кеша

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

Рассмотрим порядок принудительного обновления кеш-файла по событию.

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

Обратимся к имеющемуся кеш-файлу по ключу и удалим его при публикации новой записи на сайте, для этого используем хук 'wp_insert_post', кеш-файл будет автоматически создан заново при следующем формировании списка публикаций уже с актуальным содержимым:

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

В заключении

Хотелось бы дать несколько рекомендаций по использованию данного функционала на сайте.

  • Не стоит использовать описанный функционал кеширования от плагина WP-Recall совместно со сторонним кешированием, это может привести к непредсказуемому результату.
  • Помните, что использование функционала кеширования на сайте с малой посещаемостью может привести к неоправданным расходам ресурсов сервера на создание кеш-файлов, а не наоборот.
  • Не рекомендуется использовать на одной странице большое количество объектов кеширования, если есть возможность, то их лучше объединять в более крупные объекты.
  • При создании объекта кеширования его ключ должен быть уникальным, иначе вы будете получать из кеша не тот контент, что ожидали.

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

3

Автор публикации

12k

Есть задание? Вам сюда http://codeseller.ru/task
Нужна консультация? Вам сюда http://codeseller.ru/products/skype-konsultaciya/
Если не приглашал в личку, писать туда не надо.
Для всего остального есть форум.

Комментарии: 1654Публикации: 495Регистрация: 30-11--0001Продаж/Покупок: 13202/94