我有一个页面,要求用户登录才能查看该页面。我使用了Link中的以下代码。然而,问题是当用户登录时,他被带到主页而不是他试图访问的页面。我该如何解决这个问题?
add_action('template_redirect','wpse16975_check_if_logged_in');
function wpse16975_check_if_logged_in(){
$pageid = 2295;
if(!is_user_logged_in() && is_page($pageid)) {
$url = add_query_arg(
'redirect_to',
get_permalink($pageid),
site_url('wp-login.php')
);
wp_redirect($url);
exit;
}}
答案 0 :(得分:1)
您可以使用wp_login_url()
。
http://codex.wordpress.org/Function_Reference/wp_login_url
改变这个:
$url = add_query_arg(
'redirect_to',
get_permalink($pageid),
site_url('wp-login.php'));
要:
$url = wp_login_url( get_permalink( $pageid ) );
类似的网址将分配给$url
变量,但redirect_to参数将首先通过urlencode()
运行。