要真正知道它是否会是404,唯一的方法是让WordPress尝试加载它并在WP发送标题之前检查结果。
如果你把这个放在你的函数里。php(not on a live site! use a dev mirror.), 然后访问抛出404的页面,您可以看到$wp_query
生成的对象,is_404
都是真的。通过检查,您可以确定要执行的操作。
add_filter(\'template_redirect\', \'wpse25745_inspect_query\' );
function wpse25745_inspect_query() {
global $wp_query;
echo \'<pre>\';
print_r($wp_query);
echo \'</pre>\';
die();
}
接下来,您可以重定向到如下位置:
add_filter(\'template_redirect\', \'wpse25745_inspect_query\' );
function wpse25745_inspect_query() {
global $wp_query;
if( $wp_query->is_404 && $some_other_conditions_met == \'foo\' ):
wp_redirect( home_url(),301 );
exit;
endif;
}