我得到的這段代碼由于某種原因沒有完全正常工作,盡管它似乎在正確的方向上,而且我猜測它為什么不工作,盡管我不知道如何修復。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 關注
- 101 瀏覽
添加回答
舉報
0/150
提交
取消