如何在Wordpress中实现片段缓存(W3TC)


How to implement Fragment Caching (W3TC) in Wordpress

在我的wordpress模板的index。php文件中有这些代码:

if($detect->isMobile() && !$detect->isTablet() ) {
    include('mobileshares.php');
}

代码的目的是在用户使用移动设备或平板设备时加载php文件。这意味着,如果它是桌面的,它将不会被加载。

不管怎样,它真的很完美。NOT UNTIL我在我的wordpress中安装了W3总缓存插件。缓存把一切都搞砸了。

这意味着,已缓存的网站将显示给下一个访问者。例如,访问者1使用他的智能手机访问我的网站。它将正确显示移动站点。然后缓存进程将完成它的工作。当另一个访问者(完全不同的人)访问者#2通过不同的设备(比方说)访问我的网站时。将显示的网站将是移动桌面。我相信这是因为W3TC缓存插件。我不确定我说的是否有意义。

所以我做了一些阅读,找到了一个答案,这是片段缓存

在我的wp配置文件中编辑和添加了几行后:这是我现在修改的代码:

<!-- mfunc W3TC_DYNAMIC_SECURITY -->
    <?php
        if($detect->isMobile() && !$detect->isTablet() ) {
            include('mobileshares.php');
        }
    ?>
<!-- /mfunc W3TC_DYNAMIC_SECURITY -->

(此代码进入wp-config.php文件)

define('W3TC_DYNAMIC_SECURITY', 'somesecurestring');

我已经将我的设置设置为"Disk: Basic"并启用"Late initialization",代码仍然混乱!

我做错了什么?你能指出什么地方不对吗?你能建议一个更好的实现方法吗?

我非常感谢你的回答/评论,这样我才能解决这个问题。谢谢!

根据您对问题的描述,这通常不是由W3TC引起的,而是由W3TC提供的页面缓存功能引起的。在WordPress的W3TC设置中,关闭页面缓存,只使用片段缓存,你就不会有这个问题了。

或者,在移动设备上加载初始页面后用javascript加载这个特殊的内容,这样页面就可以用W3TC缓存而不会产生问题。