
WordPress’e php ile yeni post ekleyen wp_insert_post, dokümantasyonda önemsenmemiş bir filtreye sahip. Siz her ne kadar html ekleyebildiğinizi düşünsenizde kendisi bir filtreden geçiriyor ve iframe gibi güvenlik engeli olabilecek bazı tagları kaldırıyor. Can sıkıcı bir durum. wp_insert_post iframe Tag ekleme sorunu çözümü için filtre kapatıp tekrar açmamız gerekiyor.
wp_insert_post fonksiyonu, veritabanına gönderdiğimiz verileri eklemeden önce wp_filter_post_kses adında bir filtreye sokarak güvenlik açığı oluşturabilecek html tagları ve scriptleri engelliyor. wp_insert_post iframe Tag sorunu çözümü için;
Önce remove_filter fonksiyonu ile filtreleri kaldırıyoruz, ardından tekrar aktif ediyoruz ki sonraki işlemlerde filtre geçerli olsun.
remove_filter('content_save_pre', 'wp_filter_post_kses'); remove_filter('content_filtered_save_pre', 'wp_filter_post_kses'); $id = wp_insert_post( $my_post );//my_post arrayı codex'e göre doldurulur. add_filter('content_save_pre', 'wp_filter_post_kses'); add_filter('content_filtered_save_pre', 'wp_filter_post_kses');
Bu kadar.