刷新页面时用户已注销

时间:2017-09-20 23:49:45

标签: php wordpress wordpress-login

我遇到了Wordpress会员网站的问题。安装是带有子域的多站点。

我要求用户登录以查看子域网站的所有页面。为此,我选择了任何功能并将<?php wp_login_form(); ?>放在page-template内,如此处所示......

<?php if ( is_user_logged_in() ) {
get_header(); ?>
   <div class="page-content-wrapper ">
   </div>
<?php get_footer();?>

<?php } else {?>
<?php get_header('login'); ?>
<?php wp_login_form(); ?>
<?php get_footer('login');?>
<?php }?>

这会产生一种魅力 - 当is_user_logged_in()他们获得页面时,他们不会获得wp_login_form();。离开这个页面时出现了我的问题。用户已注销,返回页面后必须再次登录,如此处所示。

Login error

当我将if ( is_user_logged_in() )添加到其他页面时,也会发生这种情况。

当用户需要登录时,我还尝试重定向到wp-login.php,但这只是循环回wp-login.php,这表明我有一个cookie问题作为登录凭据登录。

我注意到在登录之前,cookie显示如图所示

Cookies before login

并在登录后显示如图所示

Cookies after login

在重新访问需要登录的页面时,cookie将恢复为原始状态。但是,永远不会存储用户凭据。

任何帮助将不胜感激。

更新 看来如果我第一次登录wp-admin我可以访问该页面并显示用户信息。如果我离开页面,用户将被注销并需要登录。

1 个答案:

答案 0 :(得分:5)

footer.php第38行中存在代码问题:

<a role="button" href="<?php wp_logout(); ?> "

您正在使用 wp_logout(),以便用户在访问网站的前端时注销。你需要用它替换它:

<a role="button" href="<?php echo wp_logout_url(); ?> ">

这个很好,因为它会放置链接以便用户在点击时注销。