如果函数的其余部分正常工作,只需向wp_safe_redirect 和hook the whole thing into WordPress. 我认为第一个钩子会有一个$wp_query
是wp
. 因此,请更改函数的最后一部分。。。
if($max_page < $paged){
wp_safe_redirect(get_bloginof(\'url\'),\'301\');
}
然后在函数之后(外部)添加以下内容。
add_action(\'wp\',\'redirect_tags\');
我认为应该这样做。您可以设置无限重定向循环,因此请小心。
编辑:问题是is_paged()
在函数顶部进行检查。如果尝试访问不存在的分页页面is_paged()
退货false
其余的函数都不会运行。拆下止回阀,然后钩住template_redirect
. 我测试了这个,它确实有效。换句话说。。。
function redirect_tags() {
if (is_main_query() && !is_singular() ) {
global $wp_query;
$paged = intval(get_query_var(\'paged\'));
$max_page = $wp_query->max_num_pages;
if ( ($max_page < $paged) ) {
wp_safe_redirect(get_bloginfo(\'url\'),\'301\');
}
}
}
add_filter(\'template_redirect\',\'redirect_tags\');