मैं एक प्लगइन लिख रहा हूं जो एक कस्टम पोस्ट प्रकार (अन्य चीजों के बीच) को त्वरित करता है। यह एक मल्टीसाइट प्लगइन है और निर्देशिका म्यू-प्लगइन्स में रहता है ।
इस स्थिति में flush_rewrite_rules () को संभालने के लिए सबसे अच्छा अभ्यास क्या है ? 'सामान्य' प्लगइन के लिए आप इसे सक्रियण हुक में करेंगे - जो कि उन हुक के उपलब्ध नहीं होने के बाद से प्लग-इन के लिए संभव नहीं होगा।
चूंकि यह कस्टम पोस्ट प्रकार को पंजीकृत करने के बाद "एक बार" घटना माना जाता है, क्या यह मेरी कक्षा में ऐसा कुछ करने के लिए समझ में आएगा जो सीपीटी को पंजीकृत करता है:
private function check_flush_my_CPT() {
global $wp_rewrite;
if ( !get_option('my_plugin_firstrun') ) {
$wp_rewrite->init();
$wp_rewrite->flush_rules(true);
update_option('my_plugin_firstrun', 'yes');
}
}
public function register_my_CPT() {
// do all the CPT setup steps for the $args array...
register_post_type('my_CPT', $args);
$this->check_flush_my_CPT();
}
add_action( 'init', array(&$this, 'register_my_CPT' ) );
इसलिए, सीपीटी पंजीकरण हर 'इनिट' कार्रवाई पर होता है - लेकिन अगर मेरे पास यह अधिकार है, तो फिर से लिखना नियम केवल एक बार होता है। कभी भी ।
क्या मैं सही रास्ते पर हूं?
(संपादित करें): मैंने अभी इसकी कोशिश की; मेरे सीपीटी में 404 त्रुटि नहीं पाई गई है, इसलिए पुनर्लेखन नियम काम नहीं कर रहे हैं :-(
(# 2 संपादित करें): मैंने इस प्रश्न में दिखाए गए अनुसार वैश्विक चर को एक्सेस करने के लिए समाधान की कोशिश की: मल्टीसाइट पर मज़बूती से फिर से लिखना कैसे? - मैं यह दिखाने के लिए ऊपर अपना कोड उदाहरण अपडेट करूंगा। दुर्भाग्य से मुझे सीपीटी लोड करने की कोशिश करते समय अभी भी 404 त्रुटि हो रही है। मैं देखता हूं कि पुनर्लेखन नियम डेटाबेस में संग्रहीत किए जा रहे हैं, ऐसा लगता है जैसे वे उपयोग नहीं किए जा रहे हैं। मैं हार गया हूं।