2013-07-29 139 views
3

我正在使用W3總緩存來緩存我的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; 
} 

問題是頁面在每次第一次加載時都會被緩存。因此,如果我使用會話移動設備打開頁面,它會顯示移動設備,如果我切換到桌面,然後再次訪問該頁面,它仍會顯示移動版本,因爲它在第一次被請求時被緩存。

有沒有人有如何防止這種想法?

回答

6

好的,解決方案是fragment caching。 首先,你必須通過設置

define('W3TC_DYNAMIC_SECURITY', 'my_string'); 
wp-config.php

設置你的祕密短語,然後你可以使用這樣

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

其輸出該動態代碼PHP代碼

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