我怎样才能让这样的东西发挥作用?
// in a plugin / theme:
// This imaginary function will make WordPress think that the
// current request is a 404.
// Ideally this function could be ran anywhere, but realistically it
// will probably have to be before the template_redirect hook runs.
generate_404_somehow();
// later...
add_action(\'template_redirect\', function() {
// should be "true"
var_dump(is_404());
});
基本上,在某些条件下,我想告诉WordPress显示其404模板(如果需要,我可以稍后连接到该模板),而不是它将要加载的模板(例如页面或存档)。
我知道我可以302
重定向到一个不存在的页面,但这很混乱。我也可以发送404
HTTP头是手动的,但是我不能使用WP的漂亮的404页面(我已经有一些东西可以挂接到is_404()
需要在适当的时候被解雇)。
最合适的回答,由SO网友:s_ha_dum 整理而成
function generate_404_somehow() {
global $wp_query;
$wp_query->is_404 = true;
}
add_action(\'wp\',\'generate_404_somehow\');
当然,这会将所有页面发送到404模板。我不知道在什么条件下应该开火还是不开火。
或者更加谨慎(见评论)。。。
function generate_404_somehow() {
global $wp_query;
$wp_query->set_404();
}
add_action(\'wp\',\'generate_404_somehow\');