WordPress как на ладони
wordpress jino

nocache_headers() WP 2.0

Устанавливает заголовки, которые предотвращают кэширование во всех браузерах.

nocache_headers() нужно использовать до вывода любой информации на экран.

функция удаляет http заголовок Last-Modified или устанавливает ему пустое значение. Также прописывает другие заголовки связанные с кэшированием страниц браузером которые возвращает функция wp_get_nocache_headers():

Expires: Wed, 11 Jan 1984 05:00:00 GMT
Cache-Control: no-cache, must-revalidate, max-age=0
Pragma: no-cache

Эта функция используется по всей админ-панели WordPress (wp-admin/admin.php) и при ajax запросах (wp-admin/admin-ajax.php), чтобы отключить браузерное кэширование выставленное в настройках сервера nginx или apache (htaccess). Включенный барузерный кэш в админке будет мешать нормальной работе WP...

Работает на основе: wp_get_nocache_headers()

Хуков нет.

Возвращает

Ничего не возвращает.

Использование

nocache_headers();

Примеры

1. Отменим кэширование в браузере

Отменим кэширование страницы перед тем как выполнять какой-либо код связанный с сессиями или который выводит информацию которая всегда должна быть свежей:

// устанавливаем заголовки отменяющие кэш браузера
nocache_headers();

// выполняем код

Код nocache headers: wp-includes/functions.php WP 4.9

<?php
function nocache_headers() {
	$headers = wp_get_nocache_headers();

	unset( $headers['Last-Modified'] );

	// In PHP 5.3+, make sure we are not sending a Last-Modified header.
	if ( function_exists( 'header_remove' ) ) {
		@header_remove( 'Last-Modified' );
	} else {
		// In PHP 5.2, send an empty Last-Modified header, but only as a
		// last resort to override a header already sent. #WP23021
		foreach ( headers_list() as $header ) {
			if ( 0 === stripos( $header, 'Last-Modified' ) ) {
				$headers['Last-Modified'] = '';
				break;
			}
		}
	}

	foreach ( $headers as $name => $field_value )
		@header("{$name}: {$field_value}");
}

Cвязанные функции

Из метки: headers

Еще из раздела: Без рубрики

nocache_headers 1 комментарий
  • Geleosan cайт: life-trip.ru

    Не совсем по теме, но был бы рад, если что-то посоветуете. У меня проблема с тем, что иногда комментатор блога видит в полях Имя/Емей/Сайт не свои данные, а другого недавнего комментатора. Закономерности не нашел. Просто иногда люди пишут мне об этом. Причем я специально попросил вот только что комментатора проверить эти поля, после того, как я в W3TC очистил кеш, и тогда становится все в порядке, вместо чужих данных появляются свои.

    В W3TC у меня включен page cache, brouser cache и database cache. В настройке Page Cache для "comment cookie lifetime" стоит значение "-1", то есть кукисы хранятся, как и у самого вордпресса по умолчанию 1 год. Понимаю, что проблема не во времени хранения кукисов, а в том, что подставляются данные не из тех кукисов.

    Может сможете подсказать, в какую сторону копать? Что такого делает W3TC?

    P.S. C плагином Hyper Cache + DB Cache была подобная штука. Без плагинов проблемы не встречалось вроде бы.

    Ответить3.8 года назад #

Здравствуйте, !

Ваш комментарий