W3 कुल कैश - कैश प्रोग्रामेटिक रूप से ताज़ा [बंद]


21

मैं वर्डप्रेस में वेबसाइट की तरह Digg बना रहा हूं।

W3 Total Cache को स्थापित करने के बाद, मैंने देखा कि कुछ पोस्ट (और वोटर आईडी) जैसे कुछ तत्वों को प्रति पोस्ट कैश किया जाता है, भले ही वे (एक लेख के लिए उपयोगकर्ता के वोट के बाद कम से कम नहीं) हों। मुझे लगता है कि एक पृष्ठ में विशिष्ट तत्वों को कैश्ड होने से रोकना संभव नहीं है (या है?), इसलिए मैंने प्रोग्राम को पेज कैश रीफ़्रेश करने के बारे में सोचा।

कोई सुझाव?

जवाबों:


21

यदि आप कैश को फ्लश करना चाहते हैं तो आप ऐसा कर सकते हैं: प्लगइन के पास इसके लिए फ़ंक्शन हैं

<?php 

flush_pgcache()  //page cache
flush_dbcache()  // database cache
flush_minify()  // minify cache
flush_all() //all caches

?>

और आपको इसे इस तरह से कॉल करने की आवश्यकता है:

<?php 
 $w3_plugin_totalcache->flush_all();
?>

और वह मूल रूप से शीर्षक "कैश रिफ्रेश प्रोग्राम" में प्रश्न का उत्तर है।


12
क्या आप $ w3_plugin_totalcache ऑब्जेक्ट को तुरंत कैसे परिभाषित कर सकते हैं?
adamdport

3
आंशिक रूप से सहायक, आपने उस चर को कैसे त्वरित किया?
थेपदेव

10

W3 कुल कैश टुकड़ा कैशिंग का समर्थन करता है। सामान्य प्रश्न से:

How do I implement fragment caching? 

Edit your templates to with the following syntax to ensure that dynamic features remain so:

Example 1:
<!-- mfunc any PHP code --><!-- /mfunc -->

Example 2:
<!-- mfunc -->any PHP code<!-- /mfunc -->

Example 3:
<!--MFUNC           -->
                                      echo rand();
<!--/mfunc -->

Example 4:
<!-- mclude path/to/file.php --><!-- /mclude -->

Example 5:
<!-- mclude -->path/to/file.php<!-- /mclude -->

धन्यवाद Rast। लेकिन जब मैं उपरोक्त किसी भी उदाहरण का उपयोग करता हूं, तो मुझे एक त्रुटि मिलती है पार्स त्रुटि: वाक्यविन्यास त्रुटि, अप्रत्याशित '<'
user1567

@ user1567 शायद आपके पास <?php ?>टैग खोलने / बंद करने के लिए बेमेल हो । मैंने अभी तक इनका उपयोग नहीं किया था, इसलिए दिखाने के लिए व्यावहारिक स्निपेट नहीं है।
रारस्ट

एक बात के लिए, मैं इसे कैशिंग किए बिना फ़ंक्शन को लोड करना चाहूंगा। Functions.php में निम्न कोड ने ऊपर त्रुटि उत्पन्न की: <? Php <! - mclude -> आवश्यकता_once (functions2.php) <! - / mclude ->?> कोड के साथ क्या गलत है?
15:15 बजे user1567

1
@ user1567 उदाहरणों के अनुसार यह कुछ ऐसा होना चाहिए ?><!-- mclude -->functions2.php<!-- /mclude --><?php(मुझे लगता है :)
Rarst

खंडित कैशिंग काम करने में सक्षम नहीं है। मेरी समस्या यहाँ वर्णित है: stackoverflow.com/questions/31125413/…
JackTheKnife

10

W3tc v0.9.3 में पोस्ट आईडी द्वारा एक पृष्ठ को फ्लश करने के लिए मैंने पाया कि यह काम किया है:

if (function_exists('w3tc_pgcache_flush_post')){
 w3tc_pgcache_flush_post($post_id);
}

1
आप इस कोड को कहां रखेंगे? ऐसा लगता है कि यह हर पेज लोड (उस आईडी के लिए) पर चलता है। क्या कैशिंग को पूरी तरह से रोकने का कोई तरीका नहीं है?
s_ha_dum

@s_ha_dum क्या आप पता लगा सकते हैं कि हम इस कोड का उपयोग किस हुक के साथ कर सकते हैं?
प्रफुल्ल कुमार साहू

यदि आपके कस्टम कोड / प्लगइन को प्लग-इन लोड होने के बाद निष्पादित करने के लिए अटैच किया जाता है, तो अतिरिक्त हुक की आवश्यकता नहीं होती है, जो आमतौर पर मामला है। सभी उपलब्ध फ़ंक्शन w3-total-cache-api.phpW3TC के प्लगइन dir में हैं।
वॉल्फ

धन्यवाद, यह मेरे लिए 2018 दिसंबर में मददगार था। ग्राहक द्वारा एक निश्चित पृष्ठ (एक एजेंट के उपलब्ध होने पर प्रदर्शित करने के लिए सेटिंग्स पृष्ठ) पर जाने के बाद मुझे होम पेज के कैश को फ्लश करने के तरीके की आवश्यकता थी। यह विशिष्ट पृष्ठों के लिए बहुत उपयोगी है, लेकिन यह अच्छा होगा यदि कोई फ़ंक्शन होता है जो सभी कैश को पर्ज करता है जैसे कि पर्ज ऑल कैश करता है!
जॉर्डन कार्टर

9

Bainternet का समाधान मेरे लिए काम नहीं कर रहा था।

मैं इस वैकल्पिक स्निपेट को एक प्लगइन के भीतर सफलतापूर्वक उपयोग कर रहा हूं, admin_init कार्रवाई पर लोड किया गया है:

// Clear all W3 Total Cache
if( class_exists('W3_Plugin_TotalCacheAdmin') )
{
    $plugin_totalcacheadmin = & w3_instance('W3_Plugin_TotalCacheAdmin');

    $plugin_totalcacheadmin->flush_all();

    echo __('<div class="updated"><p>All <strong>W3 Total Cache</strong> caches successfully emptied.</p></div>');
}

उम्मीद है कि यह वहाँ किसी को मदद करता है।


मैं पुष्टि कर सकता हूं कि kevinlearynet का समाधान W3 कुल कैश संस्करण 0.9.2.4 के साथ काम करता है। यह उस अपग्रेड के बाद मेरे प्लगइन के लिए टूट गया , और यह एक इलाज का काम करता है। धन्यवाद! पॉल।

2
मैं इसे कमांड लाइन से चलाने की कोशिश कर रहा हूं। क्या मैं पूछ सकता हूं कि आपने W3_Plugin_TotalCacheAdmin वर्ग को कैसे लोड किया है? मैं कोई फायदा नहीं हुआ wp-load.php की आवश्यकता की कोशिश की।
adamdport

5

मेरे प्लगइन में मेरे लिए उपरोक्त में से किसी ने भी काम नहीं किया। हालाँकि यह काम किया! W3tc के संस्करण 0.9.2.4 के लिए काम करने की पुष्टि की।

if (function_exists('w3tc_dbcache_flush')) { w3tc_dbcache_flush(); }

मैंने किया था एक "$ wpdb-> get_results (" का चयन करें sb_settingsf_fb_app_id, sb_settingsf_fb_secretसे sb_settings");" और आश्चर्यचकित था मानों f_fb_secret और f_fb_app_id ही हर बार था। यह स्पष्ट रूप से क्वेरी के परिणाम को w3tc कैश कर रहा था। इसलिए मैंने sb_settings तालिका के लिए अपने संशोधित पृष्ठ में एक dbcache फ्लश जोड़ा।

क्या आप पृष्ठ कैश को साफ़ करना चाहते हैं, तो इसके बजाय बस w3tc_pgcache_flush का उपयोग करें।


मैं कहना चाहूंगा कि वह क्यों अपमानित हुआ। क्या मेरे जवाब में कुछ गलत है?
एल्रिन्थ

0

यह सुनिश्चित करने के लिए कि कैशिंग चालू है या बंद है, यह सुनिश्चित करने के लिए अपने PHP रन का उपयोग करें। हां, आपको अपने फ़ंक्शन को दो बार लिखना / कॉल करना होगा।

<!-- mfunc echo 'caching ON'; --><?php echo 'caching OFF'; ?><!-- /mfunc -->


(मुझे लगता है) कि यह कैसे काम करता है:

  • Mfunc सशर्त php टैग को प्रतिस्थापित करता है
  • यदि कैशिंग बंद है , तो mfunc टिप्पणियों के अंदर php HTML कमेंट के रूप में आपके मार्कअप में दिखाई देते हैं। <!-- mfunc echo "hello?"; -->इस बात को ध्यान में रखें कि आप लोगों को अपने PHP को देखने के लिए कितने खुश हैं (केवल तब होता है जब कैशिंग बंद हो)।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.