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

Eri*_*ric 4 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 on the correct page
  }
}
add_action( 'wp', 'my_404' );
Run Code Online (Sandbox Code Playgroud)

如果成功,该页面将看起来完全相同,除了通过网站分析器运行它会告诉我它返回 404 代码。但是,使用此代码,无论如何它仍然返回 200。

Tim*_*imo 6

试试这个,这应该会让你得到预期的结果:

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

add_action( 'wp', 'my_404' );
Run Code Online (Sandbox Code Playgroud)