我得到的这段代码由于某种原因没有完全正常工作,尽管它似乎在正确的方向上,而且我猜测它为什么不工作,尽管我不知道如何修复。ide 是这样的,如果 HTTP_REFERER = 一个包含单词示例的网站,而你没有登录它,那么将你重定向到 mysite.com/loginadd_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; }}谢谢亲切的问候
1 回答
一只萌萌小番薯
TA贡献1795条经验 获得超7个赞
尝试在正确的钩子中重定向并使用正确的 strpos 函数,如下所示:(此代码应在您的 functions.php 文件中)
add_action( 'template_redirect', 'example_redirect');
function example_redirect() {
if (!is_user_logged_in() && strpos($_SERVER['HTTP_REFERER'], "example") !== false){
wp_redirect( wp_login_url() );
exit;
}
}
另外请确保您实际上来自example其中包含字符串的网站。
- 1 回答
- 0 关注
- 78 浏览
添加回答
举报
0/150
提交
取消