Мне нужно заставить 404 на некоторых должностях в зависимости от условий. Мне удалось это сделать (хотя я не знаю, правильно ли я это сделал), и я получаю свой 404.php
шаблон для загрузки, как ожидалось.
Мой код:
function rr_404_my_event() {
global $post;
if ( is_singular( 'event' ) && !rr_event_should_be_available( $post->ID ) ) {
include( get_query_template( '404' ) );
exit; # so that the normal page isn't loaded after the 404 page
}
}
add_action( 'template_redirect', 'rr_404_my_event', 1 );
Код 2 из этого смежного вопроса - та же проблема:
function rr_404_my_event() {
global $post;
if ( is_singular( 'event' ) && !rr_event_should_be_available( $post->ID ) ) {
global $wp_query;
$wp_query->set_404();
}
}
add_action( 'wp', 'rr_404_my_event' );
Моя проблема:
Хотя это выглядит хорошо, я получаю статус, 200 OK
если я проверяю вкладку сети. Поскольку это статус 200
, я боюсь, что поисковые системы тоже могут проиндексировать эти страницы.
Ожидаемое поведение:
Я хочу, чтобы статус 404 Not Found
был отправлен.
200
с этим.