Tôi cần buộc 404 trên một số bài viết dựa trên các điều kiện. Tôi đã xoay sở để làm điều đó (mặc dù tôi không biết liệu tôi đã làm đúng cách chưa) và tôi nhận được 404.php
mẫu của mình để tải như mong đợi.
Ma cua toi:
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 );
Mã 2 từ câu hỏi liên quan này - cùng một vấn đề:
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' );
Vấn đề của tôi:
Mặc dù có vẻ tốt, tôi vẫn nhận được trạng thái 200 OK
nếu tôi kiểm tra tab mạng. Vì đó là một trạng thái 200
, tôi sợ rằng các công cụ tìm kiếm cũng có thể lập chỉ mục các trang đó.
Hành vi dự kiến:
Tôi muốn một trạng thái 404 Not Found
được gửi.
200
với điều đó.