STATUS_HEADER() │ WP 2.0.0
Функция для установки заголовка состояния HTTP.
Использование функции
Синтаксис
status_header( $code, $description );
Параметры:
$code(int) (обязательный) — код состояния HTTP.$description(string) — пользовательское описание для кода состояния HTTP. По умолчанию значение берется из функцииget_status_header_desc()для данного кода.
Возвращаемое значение
Ничего (null).
Примеры использования
Пример 1: Закрытие всех страниц от индексации
Предположим, вам нужно изменить код состояния для всех страниц вашего сайта, чтобы закрыть их от индексации.
Добавьте следующий код в файл functions.php вашей темы:
add_action( 'wp', function(){
status_header( 503 );
} );
Пример 2: Установка статуса 404 для конкретного поста
Допустим, мы хотим установить статус 404 для всех типов постов "мероприятие", в зависимости от их статуса. Если мероприятие не активно, следует показать страницу 404.
Добавьте этот код в ваш файл functions.php:
add_action( 'template_redirect', 'rr_404_my_event', 1 );
// Этот код выводит страницу 404 для неактивного мероприятия
// и устанавливает статус 404
function rr_404_my_event() {
global $post, $wp_query;
if ( is_singular( 'event' ) && ! rr_event_should_be_available( $post->ID ) ) {
// Установка статуса
$wp_query->set_404();
status_header(404);
// Вывод файла 404.php
include( get_query_template( '404' ) );
exit;
}
}
Функция rr_event_should_be_available() проверяет, должно ли текущее событие быть доступным.
Заметки
- Для получения описания заголовка состояния обратитесь к функции
get_status_header_desc().
Обновления функции
- С 2.0.0 — Введена функция.
- С 4.4.0 — Добавлен параметр
$description.
Код функции STATUS_HEADER()
В WordPress функция определена в файле wp-includes/functions.php:
function status_header( $code, $description = '' ) {
if ( ! $description ) {
$description = get_status_header_desc( $code );
}
if ( empty( $description ) ) {
return;
}
$protocol = wp_get_server_protocol();
$status_header = "$protocol $code $description";
if ( function_exists( 'apply_filters' ) ) {
/**
* Фильтрует заголовок состояния HTTP.
*
* @since 2.2.0
*
* @param string $status_header Заголовок состояния HTTP.
* @param int $code Код состояния HTTP.
* @param string $description Описание для кода состояния.
* @param string $protocol Протокол сервера.
*/
$status_header = apply_filters( 'status_header', $status_header, $code, $description, $protocol );
}
if ( ! headers_sent() ) {
header( $status_header, true, $code );
}
}
Похожие функции
- HTTP API (CURL REMOTE)
wp_get_http_headers()wp_http_validate_url()wp_remote_get()wp_remote_head()wp_remote_post()wp_remote_request()wp_remote_retrieve_body()wp_remote_retrieve_cookie()wp_remote_retrieve_cookie_value()wp_remote_retrieve_cookies()wp_remote_retrieve_header()wp_remote_retrieve_headers()wp_remote_retrieve_response_code()wp_remote_retrieve_response_message()wp_safe_remote_request()
Эта статья поможет вам понять, как использовать функцию status_header() для управления статусами страниц на вашем сайте WordPress.