Özel bir yazı türünü (diğer şeylerin yanı sıra) başlatan bir eklenti yazıyorum. Çok siteli bir eklentidir ve mu-eklentileri dizininde yaşar .
Bu durumda flush_rewrite_rules () yöntemini işlemek için en iyi uygulama hangisidir ? 'Normal' bir eklenti için bunu bir aktivasyon kancasında yaparsınız - bu kancalar mevcut olmadığından mutlaka kullanılması gereken bir eklenti için mümkün olmayacaktır.
Bunun, özel gönderi türünü kaydettikten sonra "bir kerelik" bir etkinlik olması gerektiğinden, sınıfımda CPT'yi kaydeden böyle bir şey yapmak mantıklı olur mu?
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' ) );
Yani, CPT kaydı her 'init' eyleminde gerçekleşir - ancak bu hakkım varsa, yeniden yazma kurallarının temizlenmesi yalnızca bir kez gerçekleşir. Hiç .
Ben doğru yolda mıyım?
Sadece değiştirdim; CPT'm 404 bulunamadı hatası veriyor, bu nedenle yeniden yazma kuralları çalışmıyor :-(
(değiştir # 2): Bu soruda gösterildiği gibi genel değişkene erişmek için çözümü denedim: Çoklu sitede yeniden yazma kurallarını güvenilir bir şekilde nasıl temizleyebilirim? - Bunu göstermek için yukarıdaki kod örneğimi güncelleyeceğim. Ne yazık ki hala bir CPT yüklemeye çalışırken 404 hatası alıyorum. Yeniden yazma kurallarının veritabanında saklandığını görüyorum, sadece kullanılmıyor gibi görünüyor. Kayboldum.