php - 刷新页面时用户已注销

标签 php wordpress wordpress-login

我在使用 Wordpress 成员(member)网站时遇到问题。安装是带有子域的多站点。

我要求用户登录才能查看子域站点的所有页面。为此,我选择了反对任何功能并放置了 <?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我可以访问该页面并显示用户信息。如果我离开页面,用户将注销并需要登录。

最佳答案

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

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

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

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

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

关于php - 刷新页面时用户已注销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46333327/

相关文章:

php - 在 Doctrine 2 中指定表类型/存储引擎

php - 在 Zend Framework 2 中对同一 namespace 使用两个不同的目录 - 如何?

php - 使用 preg_replace 清理小部件输出 HTML

Wordpress OpenID 不适用于 StackOverflow

php - Symfony2 - 使用事件监听器中的 POST 数据转发到外部 URL?

php - 总结两个 SELECT 值

php - Pod fetchRecord 会跳过项目

php - 在 Woocommerce 3.5 中删除购物车表上的运费估算消息

cloudflare 后 wordpress 网站管理员登录无法在 https 上工作