status_header() — позволяет изменить код ответа сервера

При помощи php-функции @header() устанавливает заданный код ответа сервера на странице, на которой используется.

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

status_header( $header )
$header
(целое число) код ответа сервера, например 400, 404, 301 и т.д.

Функция не возвращает никаких значений.

Пример использования

status_header( 404 );

А теперь обратите внимание на расположение функции. Конечно, это только пример, главное условие — до HTML.

status_header( 404 );
get_header();
...

Фильтр status_header

Непосредственно перед задействованием функции @header() применяется фильтр status_header.

Мой пример использования фильтра:

function true_status_header_filter_func( $status_header, $code, $description, $protocol ) {
	// $status_header - первоначальное значение функции
	// $code - код, например 301 или 404
	// $description - описание, например 'Moved Permanently' или 'Not Found'
	// $protocol - протокол, например HTTP/1.0
	return 'HTTP/1.0 400 Bad Request';
}
 
add_filter('status_header', 'true_status_header_filter_func', 10, 4);
Миша Рудрастых Разработчик WordPress WooCommerce

Миша Рудрастых

Впервые познакомился с WordPress в 2009 году, и после двух лет мучений с Joomla и самописными движками это был просто бальзам на душу. С 2014 года меня можно встретить на WordCamp — официальной конфе по WP в Москве, иногда там выступаю. Также в настоящее время веду курсы по WordPress в Epic Skills в Питере.