Muszę wymusić 404 na niektórych postach w zależności od warunków. Udało mi się to zrobić (chociaż nie wiem, czy zrobiłem to we właściwy sposób) i otrzymuję 404.php
szablon do załadowania zgodnie z oczekiwaniami.
Mój kod:
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 );
Kod 2 z tego powiązanego pytania - ten sam problem:
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' );
Mój problem:
Mimo, że wygląda dobrze, dostaję status, 200 OK
jeśli sprawdzę kartę sieci. Ponieważ jest to stan 200
, obawiam się, że wyszukiwarki mogą również indeksować te strony.
Oczekiwane zachowanie:
Chcę 404 Not Found
wysłać status .
200
z tym status .