2012-07-15 80 views
2

我想問問關於WordPress ...如何重定向到登錄頁面,然後再返回在WordPress

我有這樣一個場景:如果用戶沒有登錄,他應該被重定向到登陸/註冊頁面並返回到請求頁面的目的地。 我使用此代碼,但無法獲取目標網址。

代碼頁限制:

if (user-no-login){wp_redirect(get_option('home') . '?redirect_to=' . esc_url($_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]));} 

登錄代碼,我嘗試回聲,但只得到<site_url>/?page=login($_REQUEST['redirect_to'])當它應該是<site_url>/food/rice?red=1

任何人都可以幫我解決我的問題嗎?謝謝。

回答

0

創建頁面模板。有了這個代碼在上面:

<?php 
/* 
Template Name: Redirect 
*/ 
?> 
<?php if (!is_user_logged_in()) 
{ 
    header("Location: http://example.com/wp-login.php"); 
} 
else 
{ 
    get_header(); 
    //page code 
    get_footer(); 
}?> 
+0

SeeBeen:感謝您的協助,但如何分發用戶的目的地URL?因爲對於你的代碼,只需直接登錄表單...謝謝 – 2012-07-15 12:44:22

+0

@JuanLie你可以試試這個插件 - http://wordpress.org/extend/plugins/peters-login-redirect/ – 2012-07-15 12:57:30

3

什麼,您遺漏了這是wp_login_url

if (!is_user_logged_in()) { 
    wp_redirect(wp_login_url($redirect)); 
    exit(); 
} 

注意沿wp_redirect:該$重定向變量「必須是絕對http://example.com/mypage/」所以在這種情況下:$redirect = "http://".$_SERVER[HTTP_HOST].$_SERVER[REQUEST_URI]

相關問題