गैर-वर्डप्रेस वेबसाइटों पर वर्डप्रेस साइडबार कैसे प्रदर्शित करें
अपने नवीनतम प्रोजेक्ट, देवग्रो डिस्कशन पर काम करते हुए, मुझे इसकी आवश्यकता हुई एक गैर-वर्डप्रेस साइट पर मेरे पूरे वर्डप्रेस साइडबार को एम्बेड करें - विशेष रूप से ए bbPress मंच. चूंकि मैं लोकप्रिय पोस्ट और अन्य गतिशील सामग्री प्रदर्शित करने के लिए विभिन्न विगेट्स का उपयोग करता हूं, बस एचटीएमएल को कॉपी और पेस्ट करना पर्याप्त नहीं होगा। अंत में, इस बारे में जाने के केवल दो तरीके हैं:
- अपने को शामिल करें WP-load.php अपने आवेदन में फ़ाइल और वास्तव में प्लगइन कार्यों तक पहुँच पाने के लिए वर्डप्रेस की संपूर्णता को लोड करें
- HTML प्रारूप में साइडबार को संग्रहीत करने के लिए सरल कैशिंग का उपयोग करें और इसे किसी अन्य एप्लिकेशन में शामिल करें, फिर नई सामग्री प्रकाशित होने पर इसे आवश्यक रूप से पुन: बनाएँ।
यदि यह पर्याप्त स्पष्ट नहीं है, तो डेटाबेस प्रश्नों के संदर्भ में पहला विकल्प बहुत महंगा है और आपकी साइट को धीमा कर सकता है। दूसरे विकल्प को क्रियान्वयन में थोड़ा प्रयास करने की आवश्यकता होती है, लेकिन प्रदर्शन में समझदारी नहीं है.
आपका WordPress साइडबार कैशिंग
इससे पहले कि हम अपना कार्य लिख सकें, हमें यह समझने की आवश्यकता है कि हम क्या करने की कोशिश कर रहे हैं। हमारा लक्ष्य है हमारे साइडबार को एक पाठ फ़ाइल में कैश करें तथा जब भी हम कोई पोस्ट प्रकाशित करते हैं तो उस कैश को अपडेट करें, हमारी थीम बदलें या साइडबार विजेट में बदलाव करें। चूँकि हम एक अलग एप्लिकेशन पर साइडबार प्रदर्शित करने के लिए अपने कैश का उपयोग करने की योजना बना रहे हैं, हमें आसानी से कैश को बिना किसी दुष्प्रभाव के हटाने में सक्षम होने की आवश्यकता है (हम किसी भी समय हमारे साइडबार को तोड़ना नहीं चाहते हैं).
इसे कुशलता से पूरा करने के लिए, हम भी करेंगे हमारी कैश्ड फ़ाइलों का एक लॉग बनाएँ तथा यह निर्धारित करने के लिए कि कैश साफ़ होना चाहिए या नहीं. यदि ऐसा है, तो वास्तविक कैश फ़ाइल को अगली बार किसी व्यक्ति द्वारा वर्डप्रेस साइट पर जाने के बाद अधिलेखित कर दिया जाएगा, यह सुनिश्चित करना कि दोनों अनुप्रयोगों पर एक उचित साइडबार हमेशा प्रदान किया जाता है.
कार्य बनाना
आरंभ करने के लिए, अपने विषय को खोलें functions.php फ़ाइल और उसमें निम्नलिखित कार्य जोड़ें:
फ़ंक्शन कैश ($ कार्य, $ cacheFile, $ cacheTime = 21600) वैश्विक $ कैश; // फ़ाइलों और निर्देशिकाओं को कॉन्फ़िगर करें: $ cacheDir = TEMPLATEPATH। "/ cache"; $ cacheFileName = $ cacheDir। "/ cache- $ cacheFile.txt"; $ cacheLogFile = $ cacheDir। "/ cache-log.txt"; // कैश डायरेक्टरी बनाओ अगर यह मौजूद नहीं है तो (! Is_dir ($ cacheDir)) mkdir ($ cacheDir, 0755); // अपनी वर्तमान स्थिति के साथ कैश फ़ाइलों का एक लॉग बनाएं (file_exists ($ cacheLogFile)) $ cacheLog = unserialize (file_get_contents ($ cacheLogFile)); $ $ कैशलोग = सरणी (); अगर ($ कार्य == 'प्रारंभ') // यदि कैश मौजूद है, 6 घंटे से कम पुराना है और हटाने की कतार में नहीं है, तो इसे रखें - अन्यथा कैश का पुनर्निर्माण करें यदि (file_exists ($ cacheFileName) && (समय) () - फिल्म ($ cacheFileName)) < $cacheTime && $cacheLog[$cacheFile] == 1) $cache = false; else $cache = true; ob_start(); elseif($task == 'end' && $cache) // If caching, save file contents and update log file_put_contents($cacheFileName,ob_get_contents()); ob_end_flush(); $cacheLog[$cacheFile] = 1; file_put_contents($cacheLogFile,serialize($cacheLog)); elseif($task == 'purge') // Set cache to delete and update log $cacheLog[$cacheFile] = 0; file_put_contents($cacheLogFile,serialize($cacheLog)); function cache_purge() $cacheDir = TEMPLATEPATH."/cache"; $cacheLogFile = $cacheDir."/cache-log.txt"; if(file_exists($cacheLogFile)) $cacheLog = unserialize(file_get_contents($cacheLogFile)); else $cacheLog = array(); foreach($cacheLog as $key=>$ मूल्य) $ कैशलॉग [$ कुंजी] = 0; file_put_contents ($ cacheLogFile, क्रमानुसार ($ cacheLog));
ये पहला समारोह, कैश, हमारे कैश को काम करने के लिए महत्वपूर्ण है। आपकी फ़ाइल कहां है, इस पर निर्भर करते हुए, फ़ंक्शन सही फ़ाइलों और निर्देशिकाओं को सेट करेगा, सत्यापित करना होगा कि कैश की आवश्यकता है और यदि ऐसा है, तो आउटपुट को बचाएगा और कैश लॉग को अपडेट करेगा। फ़ंक्शन पाठ फ़ाइल में उत्पन्न किसी भी HTML को बचाने के लिए PHP के आउटपुट बफरिंग का उपयोग करता है.
दूसरे फ़ंक्शन का उपयोग सभी कैश फ़ाइलों को शुद्ध करने के लिए किया जाता है और मौजूदा वर्डप्रेस हुक को जोड़ने के लिए उपयोगी है। इसके साथ, हम इसे बना सकते हैं ताकि हमारा विषय अपडेट होने के बाद हर बार हमारा कैश क्लियर हो जाए, पोस्ट सेव हो जाए या हमारे साइडबार विजेट्स को निम्नलिखित के अंत में जोड़कर अपडेट किया जाए functions.php:
add_action ('switch_theme', 'cache_purge', 10); add_action ('publish_post', 'cache_purge', 10); add_filter ('widget_update_callback', 'cache_purge', 10);
हुक की पूरी सूची के लिए, वर्डप्रेस प्लगइन एपीआई संदर्भ देखें.
आपका साइडबार कॉन्फ़िगर करना
अब जब आपके पास फ़ंक्शन तैयार हैं, तो आप अपने साइडबार को कैशिंग करना शुरू कर सकते हैं। खोलो अपने sidebar.php और इस लाइन को फाइल की शुरुआत में जोड़ें:
यह फ़ंक्शन उस साइडबार को कैशिंग करना शुरू कर देगा, जिसे उसे ज़रूरत है, अन्यथा यह कुछ भी नहीं करेगा। PHP आउटपुट बफ़रिंग फ़ंक्शन के काम करने के तरीके के कारण, हमें फ़ाइल के साथ-साथ बफर को भी बंद करने की आवश्यकता है। इस लाइन को उसी फ़ाइल के बहुत नीचे तक जोड़ें:
आपके द्वारा उन दो पंक्तियों को जोड़ने के बाद, अपने ब्लॉग को ताज़ा करें। आपको अपने ब्राउज़र में कुछ भी दिखाई नहीं देगा लेकिन जाँच करें / कैश आपके थीम फ़ोल्डर में निर्देशिका और आपको दो फ़ाइलों को देखना चाहिए कैश-.
अपने कैश का उपयोग करना
अब जब आपने अपनी कैश फ़ाइल बना ली है, तो आप किसी भी एप्लिकेशन में इसका उपयोग कर सकते हैं। आप आसानी से इस का उपयोग कर सकते हैं include_once फ़ंक्शन लेकिन मुझे यह सुनिश्चित करना भी पसंद है कि फ़ाइल मौजूद है, बस सुरक्षित रहने के लिए:
बस सुनिश्चित करें कि आपकी फ़ाइल पथ को दोबारा जांचना सुनिश्चित करें। यदि आप किसी बाहरी एप्लिकेशन से हटाने के लिए अपना कैश सेट करना चाहते हैं, तो आपको इसे शामिल करना होगा cache_purge अपनी स्क्रिप्ट में कहीं और कार्य करें और जब भी आवश्यक हो, बस कॉल करें। उसके बाद यह केवल फ़ंक्शन को कॉल करने की बात है:
निष्कर्ष
यह तकनीक किसी भी PHP अनुप्रयोग के लिए वास्तव में उपयोगी है, खासकर जब आप प्रदर्शन का त्याग किए बिना गतिशील सामग्री प्रदर्शित करना चाहते हैं। अपने वर्डप्रेस इंस्टॉल को तेज करने के लिए इसका उपयोग करें या किसी अन्य वेबसाइट या एप्लिकेशन पर उपयोगी बिट्स (जैसे साइडबार) का उपयोग करने में सक्षम हों.
संपादक की टिप्पणी: इस पोस्ट के द्वारा लिखा गया है मोनजुरुल डोलन Hongkiat.com के लिए। मोंजुरुल एक NYC-आधारित इंटरफ़ेस डिज़ाइनर और वेब डेवलपर है, जो जीवन के माध्यम से अपने तरीके को स्वतंत्र करता है। वह DevGrow.com पर ब्लॉग करता है, जहाँ वह वेब डेवलपमेंट और डिज़ाइन पर टिप्स और संसाधन साझा करता है.