Necesito forzar un 404 en algunas publicaciones según las condiciones. Logré hacerlo (aunque no sé si lo hice de la manera correcta) y estoy haciendo que mi 404.phpplantilla se cargue como se esperaba.
Mi código:
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 );
Código 2 de esta pregunta relacionada - mismo problema:
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' );
Mi problema:
Aunque se ve bien, obtengo un estado 200 OKsi reviso la pestaña de red. Como es un estado 200, me temo que los motores de búsqueda también pueden indexar esas páginas.
Comportamiento esperado:
Quiero 404 Not Foundque se envíe un estado .
200con eso.