Intereting Posts
Как добавить определенный виджет только на одну страницу? ajax drop down change second drop down data Как установить файлы cookie для переключения таблиц стилей при щелчке ссылки и установить ее, пока не будет нажата другая конкретная ссылка? поисковый запрос в пределах пользовательского таксономического термина, заголовка сообщения и мета поля Как перенаправить на страницу после отправки формы Удалить ссылку на продукт Woocommerce Используйте поле выбора, чтобы изменить переменную php Не удается вызвать внешнюю таблицу стилей для администратора WordPress (используя wp_admin_css)? Как получить Next / previous_post_link, чтобы просмотреть статьи в верхней категории родителей Импорт изображений с изображениями в сообщения, дублирование изображения Перенаправление на старый домен, все, ничего не работает запрос базы данных с более чем двумя парами зависает и не завершается Изменить страницу в соответствии с выбранными параметрами GET Как добавить пользовательский CSS в Media Thickbox? Добавить gravatar в список авторов

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

Если пользователь, выйдя из системы, посещает страницу, а затем повторно просматривает его при входе в систему, он покажет кешированную версию. У закрытого вопроса, подобного этому, есть ответ, который предлагает установить Cache Control в no-cache . Это повлияет на отключенных пользователей, которые в первую очередь побеждают цель кеширования.

Проблема

При использовании кэширования страниц / браузеров с помощью T3 Total Cache или, возможно, других плагинов кеширования, если вы уже посетили страницу при выходе из системы, вам будет предоставлена ​​одна и та же выведенная версия страницы, если только вы не обновите страницу.

Вы можете воспроизвести эту проблему:

  1. Включено кэширование. Затем, в режиме инкогнито, посетите сообщение.

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

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

Потенциальное решение

Единственное потенциальное решение, которое у меня есть, – добавить переменную запроса к URL-адресу для каждого запроса. Например, добавив случайное значение:

 $key = rand(); $new_url = esc_url( add_query_arg( 'foo', $key ) ); 

Я знаю, как вручную добавить эту переменную в одиночные запросы, но вместо того, чтобы изменять каждый момент ссылок, существует ли способ заставить это для каждого URL-адреса для зарегистрированных пользователей?

Примечание. Я не уверен, что это идеальный подход для решения этой проблемы (он чувствует себя довольно отчаянным), поэтому не стесняйтесь публиковать ответ с лучшим решением.

Поскольку у вас уже активирована опция «Не кэшировать страницы для зарегистрированных пользователей», как насчет выбора cache with validation соответствии Cache Control Policy для содержимого «HTML»?

Объяснение: По сути, опция «не кэшировать страницы для зарегистрированных пользователей» уже должна посылать заголовок no-cache для зарегистрированных пользователей.

Если у пользователя есть кешированная страница в своем браузере (как незарегистрированный пользователь), а затем пытается получить доступ к той же странице при входе в систему, то cache with validation параметром cache with validation в настройке «Политика кэширования» для содержимого HTML должен отправлять must-revalidate tag.

Следовательно, зарегистрированный пользователь отправляет no-cache,must-revalidate , всегда запрашивая новую страницу.

Это в значительной степени объясняет @gmazzap заголовками, но с точки зрения конфигурации W3 Total Cache.