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

xt0899hw  于 2023-05-12  发布在  WordPress
关注(0)|答案(2)|浏览(106)

我需要在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。

7rtdyuoh

7rtdyuoh1#

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

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

add_action( 'wp', 'my_404' );
kx5bkwkv

kx5bkwkv2#

您可以在实际查询运行之前挂钩:

function my_404( $query ) {
        if ($query->queried_object_id == 813) {
            header('HTTP/1.1 404 Not Found');
            die('Testing123');
        }
    }
    
    add_action( 'pre_get_posts', 'my_404' );

相关问题