我遇到了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();
。离开这个页面时出现了我的问题。用户已注销,返回页面后必须再次登录,如此处所示。
当我将if ( is_user_logged_in() )
添加到其他页面时,也会发生这种情况。
当用户需要登录时,我还尝试重定向到wp-login.php
,但这只是循环回wp-login.php
,这表明我有一个cookie问题作为登录凭据登录。
我注意到在登录之前,cookie显示如图所示
并在登录后显示如图所示
在重新访问需要登录的页面时,cookie将恢复为原始状态。但是,永远不会存储用户凭据。
任何帮助将不胜感激。
更新
看来如果我第一次登录wp-admin
我可以访问该页面并显示用户信息。如果我离开页面,用户将被注销并需要登录。
答案 0 :(得分:5)
footer.php第38行中存在代码问题:
<a role="button" href="<?php wp_logout(); ?> "
您正在使用 wp_logout(),以便用户在访问网站的前端时注销。你需要用它替换它:
<a role="button" href="<?php echo wp_logout_url(); ?> ">
这个很好,因为它会放置链接以便用户在点击时注销。