我得到的这段代码由于某种原因没有完全正常工作,尽管它似乎在正确的方向上,而且我猜测它为什么不工作,尽管我不知道如何修复。
ide 是这样的,如果 HTTP_REFERER = 一个包含单词示例的网站,而你没有登录它,那么将你重定向到 mysite.com/login
add_action( 'init', 'example_redirect');
function metorik_redirect() {
if (!is_user_logged_in() && strpos($_SERVER['HTTP_REFERER'], "example")){
wp_redirect( site_url('/login/') );
exit;
}
}
上面的规则似乎在满足条件时触发,但随后返回 ERR_TOO_MANY_REDIRECTS
我的猜测是,每次它循环通过该函数时,它都会不断地找到 referer 作为示例,然后它永远不会退出它。如前所述,只是一个猜测。
更新 1: 我尝试使用我在此处 stackoverflow 中找到的其他代码,结果相同:
add_action('template_redirect', 'redirect_if_example');
function redirect_if_example(){
if ( !is_user_logged_in() && coming_from_example(wp_get_referer()) ){
wp_safe_redirect( "/login/" );
exit;
} else{
wp_safe_redirect( get_home_url() );
exit;
}
}
function coming_from_example($url_string){
if ($url_string){
$url = parse_url($url_string);
return strpos($url['host'], 'example.com');
} else {
return false;
}
}
谢谢亲切的问候
一只萌萌小番薯