我想问一下wordpress。。。
我有这样一个场景:如果用户没有登录,他应该被重定向到login/reg页面,然后再次返回到请求页面的目的地。我使用此代码,但无法获取目的地url。
页面中限制的代码:
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
。
有人能帮我解决问题吗?非常感谢。
您缺少的是wp_redirect和wp_login_url
if (!is_user_logged_in()) {
wp_redirect( wp_login_url( $redirect ) );
exit();
}
注意:$redirect变量"必须是绝对的,如http://example.com/mypage/"所以在这种情况下:$redirect = "http://".$_SERVER[HTTP_HOST].$_SERVER[REQUEST_URI]
.
创建一个页面模板。上面有这个代码:
<?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();
}?>