【问题标题】:Don't cache pages WITHOUT a certain cookie - W3 Total Cache for Wordpress不要缓存没有特定 cookie 的页面 - W3 Total Cache for Wordpress
【发布时间】:2018-12-07 16:58:01
【问题描述】:
我正在努力解决一个问题。在 W3 Total Cache 插件中,Page Cache > Advanced > Rejected Cookies 下有此选项。使用此选项,您可以选择一个 cookie,如果此 cookie 在页面上处于活动状态,则不会缓存该页面。但是,在我的情况下,页面应该始终被缓存,除非 cookie 处于非活动状态。这是否可能实现,如果可以,我将如何做到这一点?
如果有帮助,cookie 与 WeePie Cookie Allow 插件相关,并通过接受按钮激活(以同意使用 cookie)。缓存页面上不会弹出 cookie 通知。
提前致谢,
基甸
【问题讨论】:
标签:
php
wordpress
caching
cookies
w3-total-cache
【解决方案1】:
好的,所以我找到了解决方法。我添加了一个 cookie,它应该在页面加载之前加载。我将此 cookie 添加到 W3 Total Cache 中的“拒绝的 cookie”选项中。接下来我做了它,如果 WeePie Cookie Allow 插件的 cookie 是活动的,这个会被删除,所以页面会被再次缓存。
如果有人遇到同样的问题,我添加到functions.php的代码:
function AddRemoveCookie(){
$ThatCookie = '1';
setcookie("consentNotGiven", $ThatCookie);
if (isset($_COOKIE['wpca_consent'])) {
setcookie("consentNotGiven", "", time() - 3600);
return true;
} else {
return false;
}
}
add_action( "template_redirect", "AddRemoveCookie" );