缓存动态页面/从缓存中排除部分

时间:2013-07-29 09:07:11

标签: php wordpress caching w3-total-cache

我正在使用W3 Total Cache来缓存我的WordPress页面,帖子等 现在我创建了一个按钮,用于设置会话变量以告诉服务器用户是否需要移动或桌面视图并调用此函数:

<?php function mobile_css() {
    if(is_mobile() && !isset($_SESSION['mobile'])) : ?>
    <link type="text/css" media="all" rel="stylesheet" href="<?php bloginfo('template_url'); ?>/css/mobile.css" />
  <?php elseif($_SESSION['mobile'] == "ja") : ?>
    <link type="text/css" media="all" rel="stylesheet" href="<?php bloginfo('template_url'); ?>/css/mobile.css" />
    <?php endif;
}

问题是页面在每次第一次加载时都会被缓存。因此,如果我打开带有会话移动设备的页面,它会显示移动设备,如果我切换到桌面然后再次访问该页面,它仍会显示移动版本,因为它是第一次被请求时被缓存的。

有人知道如何防止这种情况吗?

1 个答案:

答案 0 :(得分:6)

好的,解决方案是fragment caching。 首先,您必须通过设置

来设置您的秘密短语
define('W3TC_DYNAMIC_SECURITY', 'my_string');
wp-config.php

然后你可以使用像这样的PHP代码

<!-- mfunc echo "Hello World<br/>"; --><!-- /mfunc -->

输出此动态代码

<?php echo "Hello World<br/>"; ?>