Aangepaste WordPress RSS / XML Feed maken

Op een bepaald moment in uw WordPress-ontwikkeling moet u iemand wellicht een aangepaste feed leveren. Of het nu gaat om het leveren van een API aan iemand, of gewoon om een ​​betere ervaring voor een bepaalde groep gebruikers, het is gemakkelijk.

Ik geef er de voorkeur aan om een ​​nieuwe feed te maken in plaats van de standaard feeds te verlengen, omdat ik deze methode een beetje eenvoudiger vind

add_feed WordPress-functie

 add_filter ( 'init', "tj_init_custom_feed); function tj_init_custom_feed () {// initialiseer de feed add_feed ('custom-feed', 'tj_custom_feed'); } 

Voeg de bovenstaande code toe in uw functions.php-bestand in uw WordPress-thema. Omdat het beter is om add_feed niet direct aan te roepen, voegen we het toe via een filter op 'init'. De eerste parameter in de functieaanroep wordt gebruikt om de URL-slug voor de feed op te geven. De tweede parameter wordt gebruikt om het aan een functienaam te koppelen. Dus, wanneer die url wordt genoemd (yourblogurl.com/custom-feed), voert het de PHP-functie tj_custom_feed uit.

Houd er rekening mee dat de herschrijfregels voor WordPress moeten worden leeggemaakt voordat die URL correct wordt herkend. Een goede eenvoudige manier om de regels te forceren is om naar de WordPress Admin -> Instellingen -> Permalinks te gaan en vervolgens op de knop Wijzigingen opslaan te klikken.

De XML uitvoeren

Er is echt niets te ingewikkeld aan het uitvoeren van de RSS / XML-feedcode. Eerst wordt het content-type ingesteld via de php-headerfunctie, zodat het op de juiste manier kan worden weergegeven. Vervolgens halen we wat gegevens van get_posts op, doorlopen het en weerkaatsen het naar het scherm.

 functie tj_custom_feed () {header ("Inhoudstype: tekst / xml"); echo "\ n"; echo "\ n"; $ posts = get_posts (); foreach ($ posts als $ post) {$ post_link = get_permalink ($ post-> ID); $ image = wp_get_attachment_image_src (get_post_thumbnail_id ($ post-> ID), 'full'); 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". $ afbeelding [0]. ""; echo ''; } echo ""; Uitgang; } 
Zie Ook