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

Ben*_*ers 14 php wordpress caching

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

if($detect->isMobile() && !$detect->isTablet() ) {
    include('mobileshares.php');
}
Run Code Online (Sandbox Code Playgroud)

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

无论如何,它真的很完美.NOT UNTIL我 在我的wordpress中安装了W3 Total Cache插件.缓存会让一切变得混乱.

这意味着,已缓存的网站将显示给下一位访客.例如,访问者#1使用他的智能手机访问了我的网站.它将显示移动网站的相关性.然后缓存过程将完成其工作.当另一位访客(完全不同的人)访问者#2通过不同的设备(让我们说)桌面访问我的网站时.将显示的网站将是移动桌面.我相信这是因为W3TC缓存插件.不确定我在这里有意义.

所以我做了一些小的读数,发现了一个回答片段缓存.

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

<!-- mfunc W3TC_DYNAMIC_SECURITY -->
    <?php

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

(此代码转到wp-config.php文件)

define('W3TC_DYNAMIC_SECURITY', 'somesecurestring');
Run Code Online (Sandbox Code Playgroud)

我已将我的设置设置为" 磁盘:基本 "并启用" 延迟初始化 ",代码仍然搞砸了!

我究竟做错了什么?你能指出什么是错的吗?你能建议一个更好的方法来实现吗?

我感谢您的所有答案/评论,以便我能解决这个问题.谢谢!

Mik*_*son 1

根据问题的描述,这通常不是由 W3TC 引起的,而是由 W3TC 提供的页面缓存功能引起的。在 WordPress 内的 W3TC 设置中,关闭页面缓存并仅使用片段缓存,就不会出现此问题。

或者,在移动设备上加载初始页面后,使用 javascript 加载此特殊内容,以便可以使用 W3TC 缓存该页面而不会造成问题。