Anonim

A un certo punto dello sviluppo di WordPress potrebbe essere necessario fornire a qualcuno un feed personalizzato. Che si tratti di fornire a qualcuno un'API o semplicemente di offrire un'esperienza migliore a un determinato gruppo di utenti, è facile farlo.

Preferisco creare un nuovo feed piuttosto che estendere i feed predefiniti poiché trovo questo metodo un po 'più semplice

add_feed Funzione WordPress

add_filter ( 'init', 'tj_init_custom_feed'); funzione tj_init_custom_feed () {// inizializza il feed add_feed ('feed personalizzato', 'tj_custom_feed'); }

Nel tuo file Functions.php nel tuo tema WordPress, aggiungi il codice sopra. Come è meglio non chiamare add_feed direttamente, lo aggiungiamo attraverso un filtro su "init". Il primo parametro nella chiamata di funzione viene utilizzato per fornire la lumaca URL per il feed. Il secondo parametro viene utilizzato per legarlo a un nome di funzione. Quindi, quando viene chiamato quell'URL (yourblogurl.com/custom-feed), esegue la funzione PHP tj_custom_feed.

Nota che le regole di riscrittura per WordPress devono essere cancellate prima che l'URL venga riconosciuto correttamente. Un buon modo semplice per forzare lo svuotamento delle regole è quello di accedere all'amministratore di WordPress -> Impostazioni -> Permalink, quindi fare clic sul pulsante Salva modifiche.

Emissione dell'XML

Non c'è davvero nulla di troppo complesso nell'emettere il codice feed RSS / XML. Innanzitutto, il tipo di contenuto viene impostato tramite la funzione di intestazione php in modo che possa essere visualizzato in modo appropriato. Successivamente, recuperiamo alcuni dati da get_posts, li attraversiamo e li ripetiamo sullo schermo.

funzione tj_custom_feed () {header ("Content-type: text / xml"); echo "\ n"; eco " \ n "; $ posts = get_posts (); foreach ($ posts come $ post) {$ post_link = get_permalink ($ post-> ID); $ image = wp_get_attachment_image_src (get_post_thumbnail_id ($ post-> ID), 'full') ; eco ' '; 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 ". $ image." "; eco ' '; } eco " "; Uscita; }

Creazione di feed rss / xml di wordpress personalizzati