Saya menulis sebuah plugin yang instantiates jenis posting kustom (antara lain). Ini adalah plugin multisite dan tinggal di direktori mu-plugins .
Apa praktik terbaik untuk menangani flush_rewrite_rules () dalam situasi ini? Untuk plugin 'normal' Anda akan melakukan ini di kait aktivasi - yang tidak akan mungkin untuk plugin yang harus digunakan karena kait itu tidak tersedia.
Karena ini seharusnya menjadi acara "satu kali" setelah mendaftarkan jenis posting khusus, apakah masuk akal untuk melakukan sesuatu seperti ini di kelas saya yang mendaftarkan 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' ) );
Jadi, pendaftaran CPT terjadi pada setiap tindakan 'init' - tetapi jika saya memiliki hak ini, aturan penulisan ulang siram hanya terjadi sekali. Selamanya .
Apakah saya di jalur yang benar?
(sunting): Saya baru saja mencobanya; CPT saya memberikan kesalahan 404 tidak ditemukan, sehingga aturan penulisan ulang tidak berfungsi :-(
(sunting # 2): Saya sudah mencoba solusi untuk mengakses variabel global seperti yang ditunjukkan dalam pertanyaan ini: Bagaimana cara menyiram aturan penulisan ulang multisite dengan andal? - Saya akan memperbarui contoh kode saya di atas untuk menunjukkan ini. Sayangnya saya masih mendapatkan error 404 ketika mencoba memuat CPT. Saya melihat bahwa aturan penulisan ulang sedang disimpan dalam database, sepertinya mereka tidak digunakan. Saya tersesat.