Pantheon Advanced Page Cache
Для сайтов, которым нужен детальный контроль над тем, как их ответы представлены в их пограничном кэше, Pantheon Advanced Page Cache - золотой билет. Вот общий обзор того, как работает плагин: когда генерируется ответ, плагин использует суррогатные ключи на основе основного объекта WP_Query WordPress, чтобы «пометить» ответ идентификаторами данных, используемых в ответе. См. Раздел «Добавление пользовательских ключей» для включения ваших собственных суррогатных ключей. Когда данные WordPress изменяются, плагин запускает запрос на очистку соответствующих суррогатных ключей данных. Благодаря своей технологии суррогатного ключа Pantheon Advanced Page Cache предоставляет сайтам WordPress значительно более точный механизм очистки кеша и, как правило, более высокую частоту попаданий в кеш. Он даже работает с WordPress REST API. Вперед и творите круто! И, как только вы создадите что-то отличное, присылайте нам запросы функций (или отчеты об ошибках). Как это работает Pantheon Advanced Page Cache интенсивно использует суррогатные ключи, которые позволяют «помечать» ответы идентификаторами, которые впоследствии могут быть использованы в запросах на очистку. Например, ответ домашней страницы может включать заголовок Surrogate-Key со следующими ключами: Surrogate-Key: front home post-43 user-4 post-41 post-9 post-7 post-1 user-1 Аналогично, запрос GET to / wp-json / wp / v2 / posts может включать заголовок Surrogate-Key со следующими ключами: Surrogate-Key: rest-post-collection rest-post-43 rest-post-43 rest-post-9 rest-post- 7 rest-post-1 Поскольку кешированные ответы включают в себя метаданные, описывающие содержащиеся в них данные, суррогатные ключи обеспечивают более гибкое поведение очистки, например: при обновлении сообщения очистите кеш для URL-адреса сообщения, домашней страницы, любого просмотра индекса, в котором отображается сообщение, и любые конечные точки REST API, в которых присутствует сообщение. Когда автор меняет свое имя, очистите кеш для архива автора и всех сообщений, написанных им. Существует ограничение на количество суррогатных ключей в ответе, поэтому мы оптимизировали их на основе ожиданий пользователя от обычного сайта WordPress. См. Раздел «Испущенные ключи» для получения полной информации о том, какие ключи включены, и следующий раздел «Добавление пользовательских ключей» для получения информации о том, как добавить свои собственные. Добавление пользовательских ключей По умолчанию Pantheon Advanced Page Cache генерирует суррогатные ключи на основе интерпретации основного объекта запроса WP_Query. Поскольку WordPress отправляет заголовки до отображения страницы, вам необходимо использовать фильтр pantheon_wp_main_query_surrogate_keys, чтобы включить дополнительные суррогатные ключи для любых данных, присутствующих на странице. Например, чтобы включить суррогатные ключи для боковой панели, отображаемой на домашней странице, вы можете отфильтровать ключи с помощью тега шаблона is_home (): / ** * Добавить суррогатный ключ для боковой панели избранного контента, отображаемой на домашней странице. * / add_filter ('pantheon_wp_main_query_surrogate_keys', function ($ keys) {if (is_home ()) {$ keys [] = 'sidebar-home-Feature';} return $ keys;}); Затем, когда боковые панели обновлены, вы можете использовать вспомогательную функцию pantheon_wp_clear_edge_keys () для генерации события очистки, специфичного для суррогатного ключа: / ** * Запуск события очистки для боковой панели избранного содержимого при обновлении виджетов. * / add_action ('update_option_sidebars_widgets', function () {pantheon_wp_clear_edge_keys (array ('sidebar-home-features'));}); Точно так же, чтобы включить суррогатные ключи для сообщений, запрашиваемых на домашней странице, вы можете предварительно получить сообщения перед отображением страницы: / ** * Пример предварительной выборки WP_Query, чтобы пометить * ответ запрашиваемыми данными. Вы должны использовать `papcx_wp_query ()` * второй раз в своем шаблоне, чтобы использовать данные. * / add_filter ('pantheon_wp_main_query_surrogate_keys', function ($ keys) {if (is_home ()) {$ query = papcx_wp_query (array ('post_type' => 'page',)); foreach ($ query-> публикует как $ post ) {$ keys [] = 'post-'. $ post-> ID;}} return $ keys;}); / ** * Зарегистрируйте группу кэша papc-non-persistent для кэширования данных * непостоянным образом. Мы хотим, чтобы данные в этой группе * кэшировались только в запросе страницы. * / add_action ('init', function () {wp_cache_add_non_persistent_groups (array ('papc-non-persistent'));}); / ** * Вспомогательная функция для создания экземпляра объекта WP_Query только * один раз на запрос страницы. * * @param array $ args Аргументы, передаваемые в WP_Query. * @return WP_Query * / function papcx_wp_query ($ args = array ()) {$ cache_key = md5 (serialize ($ args)); // Объект WP_Query будет в кеше при втором использовании функции. $ cache_value = wp_cache_get ($ cache_key, 'непостоянный papc'); если (ложь! == $ cache_value) {return $ cache_value; } $ query = новый WP_Query ($ args); wp_cache_set ($ cache_key, $ query, 'papc-non-persistent'); return $ query; } Поскольку Pantheon Advanced Page Cache уже обрабатывает события очистки сообщений WordPress, дополнительного вызова pantheon_wp_clear_edge_keys () не требуется. Наконец, фильтр pantheon_wp_rest_api_surrogate_keys позволяет фильтровать суррогатные ключи, присутствующие в ответе REST API. Нужно немного больше мощности? В дополнение к pantheon_wp_clear_edge_keys () вы можете использовать две дополнительные вспомогательные функции: pantheon_wp_clear_edge_paths ($ paths = array ()) - Очистить кеш для одного или нескольких путей. pantheon_wp_clear_edge_all () - Предупреждение! С большой властью приходит большая ответственность. Очистите кеш полностью, но делайте это с умом. Команды WP-CLI Этот плагин реализует множество команд WP-CLI. Все команды сгруппированы в пространство имен кеша wp pantheon. $ wp help pantheon cache ИМЯ wp pantheon cache ОПИСАНИЕ Управление расширенным кешем страниц Pantheon. ОБЗОР wp pantheon cache <команда> ПОДКОМАНДЫ purge-all Очистить весь кеш страницы. purge-key Очистить один или несколько суррогатных ключей из кеша. purge-path Очистить один или несколько путей из кеша. Используйте wp help pantheon cache
Автор: Pantheon
Версия: 1.0.0
Последнее обновление: 2021-07-12 12:45pm GMT