Мені потрібно змусити 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
з цим.