Как отключить кеширование для некоторых объектов в wordpress (WP Super Cache)?

Как отключить кеширование в плагине WP Super Cache для некоторых объектов, например, для div с классом no-cache? Или лучше использовать другой плагин? Или вообще без плагинов обойтись?
  • Вопрос задан
  • 1667 просмотров
Решения вопроса 1
deniscopro
@deniscopro Куратор тега WordPress
WordPress-разработчик, denisco.pro
Примерно так:
define( 'DYNAMIC_CACHE_TEST_TAG', '' ); // Change this to a secret placeholder tag
if ( DYNAMIC_CACHE_TEST_TAG != '' ) {
	function dynamic_cache_test_safety( $safety ) {
		return 1;
	}
	add_cacheaction( 'wpsc_cachedata_safety', 'dynamic_cache_test_safety' );
	function dynamic_cache_test_filter( &$cachedata) {
		return str_replace( DYNAMIC_CACHE_TEST_TAG, "<!-- Hello world at " . date( 'H:i:s' ) . " -->", $cachedata );
	}
	add_cacheaction( 'wpsc_cachedata', 'dynamic_cache_test_filter' );
	function dynamic_cache_test_template_tag() {
		echo DYNAMIC_CACHE_TEST_TAG; // This is the template tag
	}
	function dynamic_cache_test_init() {
		add_action( 'wp_footer', 'dynamic_cache_test_template_tag' );
	}
	add_cacheaction( 'add_cacheaction', 'dynamic_cache_test_init' );
}

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

Больше примеров и подробностей тут.

P.S. И там вроде надо было с галочками в настройках плагина поиграться, толи поздняя инициализация или как-то так. Там вроде на странице настроек плагина написано про это.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы