2012-07-15 46 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]

相关问题