मैं एक अजीब मुद्दे के साथ फिर से लिखने के नियमों को ठीक से फ्लश नहीं कर रहा हूँ।
मैं का उपयोग कर की कोशिश की है flush_rewrite_rules();
और flush_rewrite_rules(true);
।
मैंने भी भूमंडलीकरण $wp_rewrite
का उपयोग करने की कोशिश की है $wp_rewrite->flush_rules();
और$wp_rewrite->flush_rules(true);
जिनमें से कोई भी पुनर्लेखन नियमों को सही तरीके से नहीं दर्शाता है। उन कॉलों को वास्तव में कॉल किए जाने पर पुनर्लेखन नियमों को फ्लश किया जाता है। मुझे इसके बारे में कैसे पता है? डिबगिंग के लिए समाधान का उपयोग नियम फ्लशिंग को फिर से लिखना ।
वर्तमान में, मेरे पास पुनः सक्रियण नियम हैं जो प्लगइन सक्रियण और प्लगइन निष्क्रियकरण पर आधारित हैं। वहाँ कोई समस्या नहीं है।
मेरे पास प्लगइन को कॉन्फ़िगर करने के लिए उपयोगकर्ताओं के लिए एक प्लगइन प्रशासन सेटिंग्स पृष्ठ है। सेटिंग्स में से कुछ पर्मलिंक संरचना को समायोजित करते हैं, इसलिए फिर से लिखना नियमों को प्लगइन प्रशासन सेटिंग्स पेज "सेटिंग" पर फ़्लश करना आवश्यक है। (मानक का उपयोग करता है update_option();
) सेटिंग्स को बचाने के लिए।
मैं यह नोट करना चाहूंगा कि निर्दिष्ट सेटिंग्स के आधार पर, कस्टम पोस्ट प्रकार उपयोगकर्ता निर्दिष्ट सेटिंग्स से मेल खाने के लिए बनाए जाते हैं। तो सेटिंग्स को सहेजने के तुरंत बाद फिर से लिखना होगा। यह वह जगह है जहाँ चीजें उचित रूप से काम नहीं कर रही हैं।
द्वारा दिए गए पुनर्लेखन नियमों को डिबग करने के लिए उपरोक्त लिंक समाधान @toscho
प्रदर्शित कर रहा है कि यह पुनर्लेखन नियमों के टन को बहा रहा है। हालाँकि, जब कस्टम पोस्ट प्रकार एकवचन आइटम, या यहां तक कि कस्टम पोस्ट टाइप संग्रह उस मामले के लिए, प्रत्येक 404 त्रुटियों के रूप में लौटते हैं।
कस्टम पोस्ट प्रकार सही और उचित रूप से पंजीकृत है। मैं निश्चित रूप से जानता हूं कि यह मुद्दा नहीं है।
प्लगइन प्रशासन पृष्ठ सेटिंग्स को बचाने के साथ तुरंत बाद। कस्टम पोस्ट प्रकार बनाए जाते हैं, पर्मलिंक संरचना को समायोजित किया जाता है, और सभी पुनर्लेखन नियमों को फ्लश करने का प्रयास किया जाता है।
कस्टम पोस्ट प्रकार तब हमेशा लोड होते हैं, और init
सामान्य की तरह लोड होते हैं।
किसी कारण से, पुनर्लेखन नियम ठीक से फ्लश नहीं हो रहे हैं, क्योंकि जैसा मैंने पहले कहा था, कस्टम पोस्ट प्रकार के एकवचन या संग्रह अनुभाग पर जाकर 404 त्रुटियां वापस आती हैं।
अब अजीब हिस्सा है, अगर मैं सब करता हूं तो बस प्रशासन पर्मलिंक सेटिंग्स पृष्ठ पर जाएं, और फिर कस्टम पोस्ट प्रकार के एकवचन या संग्रह अनुभागों को देखने के लिए सामने के छोर पर वापस जाएं, वे जादुई रूप से अपेक्षित रूप से काम करते हैं।
क्या है कि प्रशासन permalinks सेटिंग्स पेज करता है कि मैं ऐसा नहीं कर रहा हूँ जो फिर से लिखना नियमों को उचित रूप से फ्लश करने की अनुमति देता है और मेरा नहीं?
मेरा मतलब है कि, एक अस्थायी समाधान के रूप में, मैं प्लगइन प्रशासन सेटिंग्स पृष्ठ को सहेजने के बाद उपयोगकर्ता को प्रशासन पर्मलिंक सेटिंग्स पृष्ठ पर पुनर्निर्देशित कर रहा हूं, लेकिन यह एक आदर्श समाधान नहीं है। मैं फिर से लिखना चाहता हूँ नियम मेरे प्लगइन कोड के भीतर ठीक से फ्लश।
क्या वर्डप्रेस में एक निश्चित बिंदु है जहां पुनर्लेखन नियमों को फ्लश करना अभी सभी नियमों को फ्लश नहीं करता है?
admin_menu
- प्लगइन सेटिंग्स पेज वर्डप्रेस प्रशासन में जोड़ा जाता है।
add_options_page()
- प्लगइन सेटिंग्स पेज सेटिंग्स मेनू के तहत जोड़ा जाता है।
सेटिंग पेज के लिए कॉलबैक में प्रस्तुत किया गया है add_options_page()
। यह भी है जहां $_POST
प्लगइन सेटिंग्स को अपडेट करने और फिर से लिखने के नियमों को फ्लश करने के लिए संसाधित किया जाता है।
चूंकि यह पहले से ही एक लंबा सवाल है, मैं एक ऑफसाइट लिंक में कोड ब्लॉक (यदि यह मदद करता है) प्रदान करने के लिए तैयार होगा जो एक वैध उत्तर का उत्पादन करने में सहायता करता है।
init
जिस पर पोस्ट प्रकार पंजीकृत होते हैं। मुझे लगा, पृष्ठ सेटिंग्स सहेजे जा रहे हैं, और पृष्ठ पुनः लोड होगा ... फिर init
आवश्यक पोस्ट प्रकारों को पंजीकृत करने के लिए फिर से हुक फायरिंग । इसलिए मुझे लगा कि पोस्ट प्रकार पहले ही लोड हो जाएंगे, और मुझे जो कुछ भी करने की ज़रूरत थी वह विकल्प को अपडेट करना था, फिर मेरे प्लगइन सेटिंग्स पेज से फिर से लिखना नियमों को फ्लश करें। मैं इसका उत्तर पोस्ट करूँगा कि मैंने एक समाधान कैसे निकाला।
flush_rewrite_rules
, जो सिर्फrewrite_rules
विकल्प को हटा देता है और इसे पुन: बनाता है, आप फाइल को खोल सकते हैंwp-admin/options-permalinks.php
और देख सकते हैं कि यह कहां होता है। चूंकि यह ऑपरेशन पूरे विकल्प को हटा देता है, इसलिए आंशिक रूप से नियमों को फ्लश करना संभव नहीं है।