Anonim

En algun moment del vostre desenvolupament de WordPress, potser haureu de proporcionar a algú un feed personalitzat. Si es tracta de proporcionar una API a algú, o simplement proporcionar una millor experiència per a un determinat conjunt d’usuaris, es fa fàcilment.

Prefereixo crear un feed nou en lloc d’estendre els feeds predeterminats, ja que trobo aquest mètode una mica més senzill

funció add_feed WordPress

add_filter ('init', 'tj_init_custom_feed'); funció tj_init_custom_feed () {// inicialitzar el feed add_feed ('personalització-alimentació', 'tj_custom_feed'); }

Afegiu el codi anterior al fitxer functions.php del vostre tema de WordPress. Com a millor per no trucar directament a add_feed, l’afegim a través d’un filtre a ‘init’. El primer paràmetre de la trucada de funció s'utilitza per proporcionar l 'URL de l'alimentació. El segon paràmetre s'utilitza per lligar-lo a un nom de funció. Per tant, quan es crida aquesta URL (yourblogurl.com/custom-feed), executa la funció PHP tj_custom_feed.

Tingueu en compte que les regles de reescriptura de WordPress s’han de canviar abans que es reconegui correctament l’URL. Una bona manera senzilla d’obligar les regles a eliminar, és anar a l’administrador de WordPress -> Configuració -> Enllaços enllaçats i, a continuació, feu clic al botó de desar canvis.

Sortida de l'XML

Realment no hi ha res massa complex sobre la sortida del codi de flux RSS / XML. En primer lloc, el tipus de contingut s'estableix mitjançant la funció de capçalera de php, de manera que es pot presentar de manera adequada. A continuació, recuperem algunes dades de get_posts, el fem un bucle i ho fem ressò a la pantalla.

function tj_custom_feed () {header ("Tipus de contingut: text / xml"); eco "\ n"; ressò " \ n "; $ posts = get_posts (); foreach ($ publicacions com $ post) {$ post_link = get_permalink ($ post-> ID); $ image = wp_get_attachment_image_src (get_post_thumbnail_id ($ post-> ID), 'complet') ; eco '; eco "\ t ". $ post-> ID." \ n "; eco" \ t ". $ post-> post_date." \ n "; eco" \ t ". $ post_link." \ n "; eco" \ t ". esc_html ($ post-> post_title)." \ n "; eco" \ t ". esc_html (strip_tags ($ post-> post_excerpt))." \ n "; eco" \ t ". $ imatge." "; eco" '; } ressò " "; sortida;}

Creació de feeds personalitzats de wordpress rss / xml