2015-05-14 2 views
1

Мне нужно отправить код статуса 404 на определенную страницу в WordPress. Страница не использует шаблон 404.php. Предпочтительно, я хотел бы сделать это в своих файлах темы и не использовать .htaccess.Отправить код статуса 404 на отдельной странице WordPress?

Вот что у меня есть, что не работает.

function my_404() { 
    if (is_page(813)) { 
    header('HTTP/1.1 404 Not Found'); 
    echo 'Testing123'; //This outputs fine, so I know the code is running on the correct page 
    } 
} 
add_action('wp', 'my_404'); 

В случае успеха, страница будет выглядеть точно так же, за исключением того, запустив его через анализатор веб-сайта будет сказать мне, что возвращается 404 код. Однако, используя этот код, он все равно возвращает 200 независимо от того, что.

ответ

1

Попробуйте это, что вы должны получить ожидаемый результат:

function my_404() { 
    if (is_page(813)) { 
    global $wp_query; 
    $wp_query->set_404(); 
    status_header(404); 
    nocache_headers() 
    } 
} 

add_action('wp', 'my_404'); 
+0

Он по-прежнему возвращает HTTP/1.1 200 OK – Eric

+0

Смотрите мой выбор, попробуйте добавить nocache_headers() функции. Общая идея должна быть абсолютно правильной, поскольку она работала для меня раньше. Также убедитесь, что страница не кэширована в вашем браузере и т. Д. – Timo

Смежные вопросы