नोट: यह एक अधूरा जवाब है जिसे वृद्धिशील रूप से विस्तारित किया जाएगा
मल्टीसाइट में नियमों को फिर से लिखने के लिए केवल विश्वसनीय तरीका है, प्राथमिक और या किसी अन्य ब्लॉग संदर्भ के क्रमिक संरचना को नष्ट किए बिना (आप पर और इससे स्विचन कैसे और क्या होता है) इस तरह दिए गए संदर्भ में नियमों को फिर से लिखना है। :
global $wp_rewrite;
$wp_rewrite->init(); //important...
$wp_rewrite->flush_rules();
ऊपर यह सुनिश्चित करता है कि दिए गए संदर्भ के लिए सही पर्मलिंक संरचना फिर से बनाई गई है और फिर से लिखना नियमों को बनाने और डेटाबेस में परिवर्तन शुरू करने से पहले सेट किया गया है।
यह एकल साइट पर लागू नहीं होता है जहां संदर्भ मायने नहीं रखता है, क्योंकि केवल एक ही संदर्भ है।
flush_rewrite_rules()मेरी राय में इस आधार पर त्रुटिपूर्ण है कि यह सही संदर्भ मानता है, लेकिन हमारे उपयोग को ध्यान में नहीं रखता है switch_to_blogजिसके लिए संदर्भ को पूरी तरह से बदल देता है और खतरनाक क्षेत्रों में हमें छोड़ देता है यदि हम नियमों को फ्लश करने की कोशिश करते हैं, तो संभवतः।
यह flush_rewrite_rules()कैसा दिखता है के आंतरिक भाग हैं:
function flush_rewrite_rules( $hard = true ) {
global $wp_rewrite;
$wp_rewrite->flush_rules( $hard );
}
मैं एक कारण के बारे में नहीं सोच सकता कि ऐसा क्यों नहीं होना चाहिए:
function flush_rewrite_rules( $hard = true ) {
global $wp_rewrite;
$wp_rewrite->init(); //hello....
$wp_rewrite->flush_rules( $hard );
}
... खासकर जब आप विचार करते हैं कि निर्माता WP_Rewriteक्या करता है? यह ऐसा करता है ...
public function __construct() {
$this->init();
}
हालांकि इस लाइन को आगे बढ़ाने के लिए चिंता के अपने पहले बिंदु पर छूना,
तो बहु-संलयन में रीलीज़ फ़्लशिंग राईट नियमों के बारे में कैसे जाना जाएगा :
- साइट के लिए नई साइट कब बनाई जाती है?
आइए देखें कि इस प्रक्रिया के दौरान वर्डप्रेस कोर क्या कहेंगे:
- प्रथम
wpmu_create_blog()
- जो तब कॉल
install_blog()जो बदले में कॉल करता हैpopulate_options()
- फिर
populate_options()विकल्प तालिका में डिफ़ॉल्ट पर्मलिंक संरचना सेट करता है
- के बाद
install_blog()भाग गया है, wp_install_defaults()तो कहा जाता है
- फिर
wp_install_defaults()नए बनाए गए साइट के लिए फिर से लिखना शुरू करने से पहले वर्तमान ब्लॉग पर वापस स्विच करने के नियमों को फ्लश करता है restore_current_blog()।
महत्वपूर्ण बात यह है कि wp_install_defaults()जैसा मैंने ऊपर बताया है, वैसा ही नियम फ्लश करता है:
$wp_rewrite->init();
$wp_rewrite->flush_rules();
... क्योंकि यह सुनिश्चित करने का एकमात्र तरीका सही permalink_structureऔर नियम वर्तमान संदर्भ के लिए बनाए गए हैं।
इसके अलावा गितुब मुद्दे के भीतर स्पष्ट समस्या में , उपयोगकर्ता ने निम्नलिखित व्यवहार का अनुभव करने का कारण:
जब कोई नई साइट बनाई जाती है तो वह शीर्ष स्तर की साइट पर केवल पोस्ट स्तर के पर्मलिंक को तोड़ती है - अधिकांश पर्मलिंक विन्यासों में - सभी नहीं:
ये 2 प्रारूप सही ढंग से काम करते हैं।
डिफ़ॉल्ट - उम्मीद के मुताबिक काम करता है
दिन और नाम - उम्मीद के मुताबिक काम करता है
... ऐसा इसलिए है क्योंकि अगर /%year%/%monthnum%/%day%/%postname%/किसी नई साइट के निर्माण में प्राथमिक ब्लॉग में डे एंड नेम पर्मलिंक स्ट्रक्चर होता है , तो उसमें भी /%year%/%monthnum%/%day%/%postname%/डिफॉल्ट रूप से डे एंड नेम पर्मलिंक स्ट्रक्चर होता है, यही वजह है कि कोई खास समस्या तब पेश नहीं होती है जब योस्ट एसईओ प्लग इन को राइट करता है shutdownहुक पर नियम ।