如何触发404自定义查询变量?

时间:2011-03-26 作者:hsatterwhite

使用自定义查询变量时,如何触发404?我已经为自定义查询变量编写了重写规则,但如果您要为查询变量请求一个URL,从技术上讲应该是404,它会返回一个正常的WP页面,但没有内容,因为从技术上讲,URL不存在任何内容。

2 个回复
最合适的回答,由SO网友:scribu 整理而成

有一个专门针对此的操作:

function my_parse_query( $wp_query ) {
    if ( $wp_query->get( \'my_custom_var\' ) > 42 ) {
        $wp_query->set_404();
        status_header( 404 );
    }
}
add_action( \'parse_query\', \'my_parse_query\' );
这将加载404。主题中的php模板(如果有的话)。否则,它将回落到索引。php。

这还将触发HTTP 404状态代码。

有关更多信息,请参阅parse_query.

SO网友:fuxia

添加404。php到你的主题,看看它是否被调用。

样本404。php

<!doctype>
<title>404</title>
<p>404 – Mwah!</p>
更重要的是:真正的HTTP头,这里是状态代码。您可以使用浏览器开发工具在network. 以下是的屏幕截图http://wordpress.stackexchange.com/404 在歌剧《蜻蜓》中:

screen shot

See full size image

如果您仍然得到状态代码200,请查看全局变量$wp$wp_query. 他们将告诉您有关获取的资源的更多详细信息。

结束

相关推荐