W3cubDocs

/WordPress

wp_get_nocache_headers(): array

Gets the HTTP header information to prevent caching.

Description

The several different headers cover the different ways cache prevention is handled by different browsers.

Return

array The associative array of header names and field values.

Source

function wp_get_nocache_headers() {
	$cache_control = ( function_exists( 'is_user_logged_in' ) && is_user_logged_in() )
		? 'no-cache, must-revalidate, max-age=0, no-store, private'
		: 'no-cache, must-revalidate, max-age=0';

	$headers = array(
		'Expires'       => 'Wed, 11 Jan 1984 05:00:00 GMT',
		'Cache-Control' => $cache_control,
	);

	if ( function_exists( 'apply_filters' ) ) {
		/**
		 * Filters the cache-controlling HTTP headers that are used to prevent caching.
		 *
		 * @since 2.8.0
		 *
		 * @see wp_get_nocache_headers()
		 *
		 * @param array $headers Header names and field values.
		 */
		$headers = (array) apply_filters( 'nocache_headers', $headers );
	}
	$headers['Last-Modified'] = false;
	return $headers;
}

Hooks

apply_filters( ‘nocache_headers’, array $headers )

Filters the cache-controlling HTTP headers that are used to prevent caching.

Changelog

Version Description
6.3.0 The Cache-Control header for logged in users now includes the no-store and private directives.
2.8.0 Introduced.

© 2003–2024 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/functions/wp_get_nocache_headers