ฉันกำลังเขียนปลั๊กอินที่สร้างประเภทโพสต์ที่กำหนดเอง (เหนือสิ่งอื่นใด) มันเป็นปลั๊กอิน MultiSite การและอาศัยอยู่ในไดเรกทอรีMU-ปลั๊กอิน
แนวปฏิบัติที่ดีที่สุดสำหรับการจัดการflush_rewrite_rules ()ในสถานการณ์นี้คืออะไร สำหรับปลั๊กอิน 'ปกติ' ที่คุณต้องทำในฮุคการเปิดใช้งานซึ่งเป็นไปไม่ได้สำหรับปลั๊กอินที่ต้องใช้เนื่องจากตะขอเหล่านั้นไม่พร้อมใช้งาน
เนื่องจากสิ่งนี้น่าจะเป็นเหตุการณ์ "ครั้งเดียว" หลังจากลงทะเบียนประเภทโพสต์ที่กำหนดเองมันจะทำให้การทำอะไรเช่นนี้ในชั้นเรียนของฉันที่ลงทะเบียน CPT:
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' ) );
ดังนั้นการลงทะเบียน CPT จะเกิดขึ้นกับทุกการกระทำ 'init' แต่ถ้าฉันมีสิทธิ์นี้กฎการเขียนใหม่จะเกิดขึ้นเพียงครั้งเดียวเท่านั้น เคย
ฉันกำลังติดตามใช่ไหม?
(แก้ไข): ฉันลองแล้ว CPT ของฉันกำลังให้ข้อผิดพลาด 404 ที่ไม่พบดังนั้นกฎการเขียนซ้ำไม่ทำงาน :-(
(แก้ไข # 2): ฉันลองวิธีแก้ปัญหาในการเข้าถึงตัวแปรโกลบอลดังที่แสดงในคำถามนี้: จะล้างกฎการเขียนซ้ำบนไซต์หลายไซต์ได้อย่างไร - ฉันจะอัปเดตตัวอย่างรหัสของฉันด้านบนเพื่อแสดงสิ่งนี้ น่าเสียดายที่ฉันยังคงได้รับข้อผิดพลาด 404 เมื่อพยายามโหลด CPT ฉันเห็นว่ากฎการเขียนซ้ำถูกจัดเก็บในฐานข้อมูลดูเหมือนว่าไม่ได้ใช้งาน ฉันหลงทาง.