Opprett egendefinert WordPress RSS / XML Feed

Du på et tidspunkt i WordPress-utviklingen kan trenge å gi noen en tilpasset feed. Enten det er å gi noen en API, eller bare gi en bedre opplevelse for et bestemt sett med brukere, gjøres det enkelt.

Jeg foretrekker å lage en ny feed i stedet for å forlenge standardinnmatingene, ettersom jeg finner denne metoden litt enklere

add_feed WordPress-funksjon

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

I din functions.php-fil i WordPress-temaet, legg til koden ovenfor. Da det er best å ikke ringe add_feed direkte, legger vi det gjennom et filter på 'init'. Den første parameteren i funksjonsanropet brukes til å gi URL-slakken for strømmen. Den andre parameteren brukes til å knytte den til et funksjonsnavn. Så når den adressen heter (yourblogurl.com/custom-feed), kjører den PHP-funksjonen tj_custom_feed.

Vær oppmerksom på at omskrivningsregler for WordPress må skylles før den URL-adressen blir anerkjent på riktig måte. En god enkel måte å tvinge reglene på å bli spylt på, er å gå til WordPress Admin -> Innstillinger -> Permalinks, og klikk deretter Lagre endringer-knappen.

Utarbeide XML

Det er egentlig ikke noe for komplisert om å sende ut RSS / XML-feedkoden. For det første settes innholdstypen via php header-funksjonen slik at den kan gjengis på riktig måte. Deretter henter vi noen data fra get_posts, loop gjennom den, og ekko den ut på skjermen.

 funksjon tj_custom_feed () {header ("Content-type: text / xml"); ekko "\ n"; ekko "\ n"; $ posts = get_posts (); foreach ($ innlegg som $ post) {$ post_link = get_permalink ($ post-> ID); $ image = wp_get_attachment_image_src (get_post_thumbnail_id ($ post-> ID), 'full'); ekko ''; ekko "\ t". $ post-> ID. "\ N"; ekko "\ t". $ post-> post_date. "\ N"; ekko "\ t". $ post_link. "\ N"; ekko "\ t". esc_html ($ post-> post_title). "\ N"; ekko "\ t". esc_html (strip_tags ($ post-> post_excerpt)). "\ N"; ekko "\ t". $ bilde [0]. ""; ekko ''; } ekko ""; exit; } 
Se Også