Skapa Custom WordPress RSS / XML Feed

Du vid någon tidpunkt i din WordPress-utveckling kan behöva ge någon en anpassad matning. Oavsett om det är att ge någon ett API, eller bara ge en bättre upplevelse för en viss uppsättning användare, är det enkelt att göra det.

Jag föredrar att skapa ett nytt flöde i stället för att utöka standardmatningarna, eftersom jag hittar den här metoden lite enklare

add_feed WordPress-funktionen

 add_filter ( 'init', 'tj_init_custom_feed'); funktion tj_init_custom_feed () {// initiera feed add_feed ('custom-feed', 'tj_custom_feed'); } 

I din functions.php-fil i ditt WordPress-tema lägger du till koden ovan. Eftersom det är bäst att inte ringa add_feed direkt lägger vi till det via ett filter på 'init'. Den första parametern i funktionsanropet används för att ge URL-sluggen för flödet. Den andra parametern används för att binda den till ett funktionsnamn. Så när den webbadressen heter (yourblogurl.com/customfeed), exekverar den PHP-funktionen tj_custom_feed.

Observera att omskrivningsreglerna för WordPress måste spolas innan den URL-adressen kommer att identifieras korrekt. Ett bra enkelt sätt att tvinga reglerna att spolas är att gå till WordPress Admin -> Inställningar -> Permalinks, och klicka sedan på Spara ändringar knappen.

Utmatning av XML

Det finns egentligen inget för komplicerat om att mata ut RSS / XML-matningskoden. För det första ställs innehållstypen in via php header-funktionen så att den kan göras på lämpligt sätt. Därefter hämtar vi några data från get_posts, loop genom den och echo den ut till skärmen.

 funktion tj_custom_feed () {header ("Content-type: text / xml"); eko "\ n"; eko "\ n"; $ posts = get_posts (); foreach ($ inlägg som $ post) {$ post_link = get_permalink ($ post-> ID); $ image = wp_get_attachment_image_src (get_post_thumbnail_id ($ post-> ID), 'full'); eko "; eko "\ t". $ post-> ID. "\ N"; eko "\ t". $ post-> post_date. "\ N"; eko "\ t". $ post_link. "\ N"; eko "\ t". esc_html ($ post-> post_title). "\ N"; eko "\ t". esc_html (strip_tags ($ post-> post_excerpt)). "\ N"; eko "\ t". $ bild [0]. ""; eko "; } echo ""; utgång; } 
Se Även