我有一个网站,允许用户注册和登录,但不通过标准wp-login.php
等等——都是在主题范围内完成的s2member
也
我遇到了一些问题,在启用页面缓存的情况下,我的代码显示登录按钮或“您的帐户”按钮,显示缓存的内容。
我使用下面的代码来决定显示哪个按钮,这取决于是否登录了正确的用户级成员。
<?php if (current_user_is("s2member_level1")) : ?>
<?php
$current_user = wp_get_current_user();
$redirect = \'&redirect_to=\'.urlencode(wp_make_link_relative(get_option(\'siteurl\')));
$uri = wp_nonce_url( site_url("wp-login.php?action=logout$redirect", \'login\'), \'log-out\' );
?>
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown">My Account</a>
<ul class="dropdown-menu">
<li><a href="<?= $uri; ?>">Logout</a></li>
<li><a href="<?= get_permalink(x); ?>">Edit Account</a></li>
</ul>
</li>
<?php else : ?>
<li class="login-button">
<a class="btn-lg" href="<?= get_permalink(x); ?>">Member Login</a>
</li>
<?php endif; ?>
然而,如果启用了页面缓存,则会出现各种各样的问题。
我在看W3TC常见问题部分中的片段缓存注释,但它似乎有一个重大缺陷,它说:
请注意,WordPress功能将不可用。
所以,如果我理解正确的话,这几乎阻止了我使用片段缓存。
由于会员登录/我的帐户按钮一直存在于网站主导航中,我只是暂时完全禁用了页面缓存。
我唯一的选择是集成某种形式的AJAX方法来处理依赖于身份验证/来宾状态的动态节吗?