สร้าง Custom WordPress RSS / XML Feed

ในบางช่วงเวลาในการพัฒนา WordPress คุณอาจต้องให้ข้อมูลฟีดที่กำหนดเอง ไม่ว่าจะเป็นการมอบ API หรือให้ประสบการณ์ที่ดีกว่าแก่ผู้ใช้บางกลุ่มก็ทำได้อย่างง่ายดาย

ฉันต้องการสร้างฟีดใหม่แทนที่จะขยายฟีดเริ่มต้นเนื่องจากฉันพบว่าวิธีนี้ง่ายกว่า

add_feed ฟังก์ชัน WordPress

 add_filter ( 'init', 'tj_init_custom_feed'); ฟังก์ชั่น tj_init_custom_feed () {// เริ่มต้นฟีด add_feed ('custom-feed', 'tj_custom_feed'); } 

ในไฟล์ functions.php ในธีม WordPress ให้เพิ่มโค้ดด้านบน ดีที่สุดที่จะไม่เรียก add_feed โดยตรงเราเพิ่มผ่านตัวกรองใน 'init' พารามิเตอร์แรกในการเรียกฟังก์ชันถูกใช้เพื่อระบุ URL slug สำหรับฟีด พารามิเตอร์ที่สองใช้เพื่อผูกชื่อฟังก์ชัน ดังนั้นเมื่อ URL ที่เรียกว่า (yourblogurl.com/custom-feed) จะรันฟังก์ชัน PHP tj_custom_feed

โปรดทราบว่ากฎการเขียนใหม่สำหรับ WordPress ต้องล้างออกก่อนที่ URL ดังกล่าวจะได้รับการจดจำอย่างถูกต้อง วิธีง่ายๆในการบังคับใช้กฎเพื่อล้างข้อมูลคือไปที่ WordPress Admin -> Settings -> Permalinks แล้วคลิกปุ่มบันทึกการเปลี่ยนแปลง

การแสดงผล XML

ไม่มีอะไรที่ซับซ้อนเกินไปในการแสดงรหัสฟีด RSS / XML ขั้นแรกให้กำหนดชนิดเนื้อหาผ่านฟังก์ชันส่วนหัวของ php เพื่อให้สามารถแสดงผลได้อย่างเหมาะสม จากนั้นเราจะดึงข้อมูลบางส่วนจาก get_posts วนรอบและส่งออกไปยังหน้าจอ

 ฟังก์ชั่น tj_custom_feed () {header ("Content-type: text / xml"); echo "\ n"; echo "\ n"; $ posts = get_posts (); foreach (โพสต์ $ เป็น $ โพสต์) {$ post_link = get_permalink ($ post-> ID); $ image = wp_get_attachment_image_src (get_post_thumbnail_id ($ post-> ID), 'เต็ม'); echo ''; 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" $ ภาพ [0] ""; echo ''; } echo ""; ทางออก; } 
ดูเพิ่มเติมที่