2015-10-18 39 views
14
實現片段緩存(W3TC)

所以我有我的WordPress的模板在我的index.php文件這個代碼:如何在WordPress的

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

的代碼的宗旨是,每當用戶加載php文件使用手機或平板電腦設備。這意味着,它不會被加載,如果它是桌面。

無論如何,它真的很完美。 NOT UNTIL我在wordpress中安裝了W3 Total Cache插件。緩存混淆了一切。

這意味着,已緩存的網站將顯示給下一位訪問者。例如,訪客#1使用他的智能手機訪問我的網站。它會正確顯示移動網站。那麼緩存過程將會完成它的工作。當另一個訪問者(完全不同的人)訪問者#2通過不同的設備(比方說)訪問我的網站時,桌面。將顯示的網站將成爲移動桌面。我相信這是因爲W3TC緩存插件。不知道我在這裏有意義。

所以我做了一些讀數,發現answer這是片段緩存

編輯完成後,在我的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」,並啓用了「延遲初始化」,代碼仍然搞砸了!

我在做什麼錯?你能指出什麼是錯的嗎?你能否提出一個更好的實現方法?

我很感謝你所有的答覆/評論,所以我可以解決這個問題。謝謝!

+0

您可以添加一些關於「緩存解決所有問題」的細節。 ? – sitilge

+0

我想你也檢查過,你要麼不縮小,要麼忽略mfunc?而@sitilge指出,你需要提供更多細節。 –

+0

對不起回合。我已經更新了這個問題。 –

回答

1

根據對問題的描述,這不是由W3TC引起的,而是由W3TC提供的Page Cache功能引起的。在WordPress中的W3TC設置中,關閉頁面緩存並僅使用片段緩存,您不會遇到此問題。

或者,在移動設備上初始頁面加載後,使用javascript加載此特殊內容,以便可以使用W3TC緩存頁面而不會導致問題。