WordPress: Динамическое (фрагментное) кэширование в W3 Total Cache

Владислав Белецкий
Владислав Белецкий .
Категория:
Комментариев: 0

Задача 1. Необходимо настроить кэширование с выводом динамического контента, например текущей даты. На сайте для кэширования используется плагин W3 Total Cache.

Решение. Есть функция времени time() которая выводит количество секунд с 01.01.1970. Если мы в шаблоне укажем echo time(), то при каждом обновлении выводимое число будет меняться. Но если на сайте включено кэширование, то число будет таким же, каким оно было на момент кэширования страницы и будет обновляться только при сбросе кэша. Нам нужно сделать так, чтобы нужный нам код не кэшировался.

В W3 Total Cache можно настроить динамическое кэширование:

  1. Включить кэширование и установить «Метод кэша страницы»: Disk: Basic: В настройках «Performance» — «Основные настройки» — блок «Кэш страницы». С Enhanced работать не будет [Изображение 1.1].
  2. Включить «Поздняя инициализация» (Late Initialization): В настройках «Performance» — «Кэш страницы» (Page Caching) [Изображение 1.2].
  3. В файле wp-config.php установить константу 'W3TC_DYNAMIC_SECURITY' [Код 1.1].
  4. Тегами <!-- mfunc mycodegtargeting --> и <!-- /mfunc mycodegtargeting --> обернуть функцию, которая выводит динамический контент [Код 1.2].
  5. После всех настроек Сбросить весь кэш.
Кэш страницы в W3 Total Cache
Изображение №1.1: Настроки W3 Total Cache страниц для динамического кэширования
Поздняя инициализация в W3 Total Cache
Изображение №1.2: Включение Поздней инициализации в W3 Total Cache при динамическом кэшировании

Код №1.1: Константа ‘W3TC_DYNAMIC_SECURITY’ в файле wp-config.php для динамического кэширования в W3 Total Cache

Код №1.2: Обертка в шаблоне функции которая выводит динамический контент (при использовании W3 Total Cache)
Важный момент! Наши теги <!-- mfunc mycodekey --> не должны быть внутри <?php и ?> и не должны их обертывать.

WT Geotargeting и W3 Total Cache

Задача 2. При настройке геолокации плагином WT Geotargeting была необходимость настроить динамическое кэширование, т.к. при выборе пользователем другого города, после обновления страницы населенный пункт не изменялся из-за кэширования страницы.

Решение. Используя информацию выше оборачиваем шорткод вывода города по примеру Код №2.1:

Код №2.1: Обертка шорткода Геотаргетинга при использовании W3 Total Cache.

Если шорткод геотаргетинга всталяется не в файле, а в контенте как [wt_geotargeting get="city"], то просто обернуть в <!-- mfunc mycodegtargeting --> не получится — он не отработает. Можно в functions.php написать свою функцию, в которой вывести шорткод геотаргетинга с нужными тегами, прикрепить функцию к кастомному шорткоду, а шорткод уже вывести где нужно, Код №2.2:

Код №2.2: WT Geotargeting + W3 Total Cache — решение при использовании шорткода в контенте.
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии