Php 在特定的WordPress页面上发送404状态码?

Php 在特定的WordPress页面上发送404状态码?,php,wordpress,http-headers,Php,Wordpress,Http Headers,我需要在WordPress的特定页面上发送404状态码。该页面未使用404.php模板。最好,我希望在我的主题文件中这样做,而不是使用.htaccess 这是我所拥有的不起作用的东西 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

我需要在WordPress的特定页面上发送404状态码。该页面未使用404.php模板。最好,我希望在我的主题文件中这样做,而不是使用.htaccess

这是我所拥有的不起作用的东西

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。

试试这个,应该可以得到预期的结果:

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

add_action( 'wp', 'my_404' );

它仍然返回HTTP/1.1 200 OK请参见我的编辑,尝试将nocache_headers()添加到函数中。总的想法肯定是正确的,因为它以前对我有用。另外,请确保页面未缓存在浏览器中等。