Категории
Уведомление:подпишитесь Заходите к нам в Telegram-чат
Skripters » WordPress » WordPress Плагины » Pantheon Advanced Page Cache

Pantheon Advanced Page Cache

SaNcHeS
Опубликовано 8-08-2021, 01:26
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 удаляет заголовок ответа Surrogate-Key перед отправкой ответов клиентам. Содержимое этого заголовка можно просмотреть как Surrogate-Key-Raw, добавив к запросу заголовок отладки. Прямой способ проверки заголовков - команда curl -I. Эта команда сделает запрос и покажет только заголовки ответа. Добавление -H «Pantheon-Debug: 1» приведет к включению Surrogate-Key-Raw в заголовки ответа. Полная команда выглядит так: curl -IH "Pantheon-Debug: 1" https://scalewp.io/ Конвейер к grep будет фильтровать вывод до заголовка Surrogate-Key-Raw: curl -IH "Pantheon-Debug : 1 "https://scalewp.io/ | grep -i Surrogate-Key-Raw Tada! Отправленные ключи и события очистки Отправленные ключи в традиционных представлениях Home / Испускает суррогатные ключи: home, front, post- (все сообщения в основном запросе) Одно сообщение / 2016/10/14 / surrogate-keys / Выдает суррогатные ключи: single , post- , post-user- , post-term- (все термины, назначенные публикации) Author archive / author / pantheon / Выдает суррогатные ключи: archive, user- , post- (все сообщения в основном запросе) Term archive / tag / cdn / Выдает суррогатные ключи: archive, term- , post- (все сообщения в основном запросе) Дневной архив / 2016/10/14 / Выдает суррогатные ключи: archive, date, post- (все сообщения в основном запросе) Архив за месяц / 2016/10 / Выдает суррогатные ключи: archive, date, post- (все сообщения в основном запросе) Годовой архив / 2016 / Выдает суррогатные ключи: archive, date, post- (все сообщения в основном запросе) Search /? S = Выдает суррогатные ключи: search, либо search-results, либо search-no-results, post- < id> (все сообщения в основном запросе) Не найдено (404) Выдает суррогатные ключи: 404 Выдаваемые ключи на конечных точках REST API Сообщений / wp- json / wp / v2 / posts испускает суррогатные ключи: rest-post-collection, rest-post- / wp-json / wp / v2 / posts / испускает суррогатные ключи: rest-post- Pages / wp-json / wp / v2 / pages испускает суррогатные ключи: rest-page-collection, rest-post- / wp-json / wp / v2 / pages / испускает суррогатные ключи: rest-post- < id> Categories / wp-json / wp / v2 / Categories испускает суррогатные ключи: rest-category-collection, rest-term- / wp-json / wp / v2 / Categories / испускает суррогатные ключи: rest- term- Tags / wp-json / wp / v2 / tags испускает суррогатные ключи: rest-post_tag-collection, rest-term- / wp-json / wp / v2 / tags / испускает суррогатные ключи : rest-term- Комментарии / wp-json / wp / v2 / comments испускают суррогатные ключи: rest-comment-collection, rest-comment-post- , rest-comment- / wp -json / wp / v2 / comments / испускает суррогатные ключи: rest-comment-post- , rest-comment- Users / wp-json / wp / v2 / users испускает суррогатные ключи: rest-user-collection, rest-user- / wp-json / wp / v2 / users / испускает суррогатные ключи: rest-user- Settings / wp-json / wp / v2 / settings испускает суррогатные ключи: rest-setting- События очистки Различные действия WordPress вызывают очистку разных суррогатных ключей, что описано здесь. wp_insert_post / transition_post_status / before_delete_post / delete_attachment Удаляет суррогатные ключи: home, front, 404, post- , user- , term- , rest- -collection, rest-comment-post- < id> Затронутые просмотры: домашняя страница, отдельная запись, любая страница с заголовком 404, любой архив, в котором отображается публикация, архив авторов, архив терминов, коллекция REST API и конечные точки ресурсов clean_post_cache Очищает суррогатные ключи: post- , rest-post- < id> Затронутые представления: отдельная запись, конечная точка ресурса REST API created_term / edited_term / delete_term Удаляет суррогатные ключи: term- , post-term- , rest- -collection Затронутые представления: архив терминов, любое сообщение где назначен термин, коллекция REST API и конечные точки ресурсов clean_term_cache Очищает суррогатные ключи: term- , rest-term- Затронутые представления: архив терминов, конечная точка ресурса REST API wp_insert_comment / transition_comment_status Удаляет суррогатные ключи: rest-comment -collection, rest-comment- Затронутые представления: сбор и повтор REST API исходные конечные точки clean_comment_cache Очищает суррогатные ключи: rest-comment- Затронутые представления: конечная точка ресурса REST API clean_user_cache Очищает суррогатные ключи: user- , rest-user- Затронутые представления: архив автора, любое сообщение, в котором находится пользователь является автором updated_option Очищает суррогатные ключи: rest-setting- Затронутые представления: конечная точка ресурса REST API

Автор: Pantheon

Версия: 1.0.0

Последнее обновление: 2021-07-12 12:45pm GMT

Понравилось?
0
0
0

Скачать Pantheon Advanced Page Cache:

pantheon-advanced-page-cache.zip Размер файла: 19.74 Kb
303
0