Сегодня стала задача на одном из проектов генерировать 404 страницу в зависимости от определенных условий. Стал искать решение и, к моему удивлению, на поверхности его не оказалось.
Довольно странно, так как я привык к подобным задачам на Yii — где это делается нативно и просто.
Но, в конце концов, решению было найдено. Оптимальнее всего в файле шаблона, точнее в начале этого файла, добавить следующий код:
if (!have_posts()) {
header("HTTP/1.0 404 Not Found - Archive Empty");
$wp_query->set_404();
require TEMPLATEPATH.'/404.php';
exit;
}
get_header();
Этот маневр мне помог и страница исправно начала отдавать 404, вместо 200-го ответа.