WordPress geliştiricinizin bir noktasında, özel bir yayına sahip birine sahip olmanız gerekebilir. Birisine bir API sağlamak veya belirli bir kullanıcı grubu için daha iyi bir deneyim sağlamak olsun, bu işlem kolayca yapılabilir.
Bu yöntemi biraz daha basit bulduğumdan, varsayılan yayınları genişletmek yerine yeni bir feed oluşturmayı tercih ediyorum
add_feed WordPress işlevi
add_filter (init ', 'tj_init_custom_feed'); function tj_init_custom_feed () {// feed add_feed öğesini başlatır ('custom-feed', 'tj_custom_feed'); }
WordPress temanızdaki functions.php dosyanızda, yukarıdaki kodu ekleyin. Doğrudan add_feed'i çağırmamak için en iyisi olarak, 'init' üzerindeki bir filtreden ekliyoruz. Fonksiyon çağrısındaki ilk parametre, besleme için URL slugunu sağlamak için kullanılır. İkinci parametre, bir fonksiyon adına bağlamak için kullanılır. Yani, bu url çağrıldığında (yourblogurl.com/custom-feed), PHP işlevini tj_custom_feed yürütür.
Söz konusu URL'nin doğru bir şekilde tanınmasından önce WordPress için yeniden yazma kurallarının temizlenmesinin gerektiğini unutmayın. Temizlenecek kuralları zorlamak için basit bir yol, WordPress Admin -> Ayarlar -> Permalinks'e gitmek ve ardından değişiklikleri kaydet düğmesine tıklamaktır.
XML çıkışı
RSS / XML feed kodunun çıktısı konusunda çok karmaşık bir şey yoktur. İlk olarak, içerik türü php üstbilgi işleviyle ayarlanır, böylece uygun şekilde oluşturulabilir. Daha sonra, get_posts'dan bazı verileri alıp, bunun içinden geçerek ekrana yansıtıyoruz.
function tj_custom_feed () {başlık ("İçerik türü: metin / xml"); echo "\ n"; echo "\ n"; $ posts = get_posts (); foreach ($ post olarak $ post) {$ post_link = get_permalink ($ post-> ID); $ image = wp_get_attachment_image_src (get_post_thumbnail_id ($ post-> ID), 'dolu'); Eko ''; echo "\ t". $ post-> ID. "\ N"; echo "\ t". $ post-> post_date. "\ N"; echo "\ t". $ post_link. "\ N"; echo "\ t". esc_html ($ post-> post_title). "\ N"; echo "\ t". esc_html (strip_tags ($ post-> post_excerpt)). "\ N"; echo "\ t". $ görüntü [0]. ""; Eko ''; } Eko ""; çıkış; }