due chiacchiere

Creare un feed personalizzato in WordPress

Parafrasando quello che cantava Jovanotti secoli fa, sono un blogger fortunato. Perché i miei lettori ci tengono a condividere la loro sincera ed onesta opinione su come gestisco la baracca, aiutandomi a migliorare ogni giorno questo piccolo spazio sperduto nella rete. Come forse avevi notato, il feed di questo blog proponeva, oltre agli articoli freschi di stampa, anche altri “del giorno” tirati fuori dall’archivio (ne avevo parlato qui, per i più distratti). All’epoca avevo deciso di implementare quella funzione per rimpinguare le esili sembianze del feed, e per dare ai pochi lettori rimasti la possibilità di rinfrescarsi la memoria su quello che c’eravamo detti un decennio fa. Quando Emanuele mi ha detto di avere qualche dubbio su questa funzionalità, osservando che gonfiava il suo feed in maniera artificiale, non potevo certo ignorare il suo appello. Ho dato un’occhiata alle statistiche, ed in effetti ho notato che non portava più visitatori. Così mi sono messo al lavoro, ed ho deciso che la soluzione migliore era di lasciare in pace il feed principale, e di crearne uno a parte per l’archivio, per la gioia di grandi e piccini.

Per i più curiosi che volessero aggiungere una funzione simile al proprio blog, il codice si trova sul mio account Github. In pratica, bisogna aggiungere una chiamata al proprio functions.php per definire il nuovo feed:

add_feed( 'scrissi-oggi', array( __CLASS__, 'feed_todays_in_the_past' ) );

E poi chiamare una funzione che si occupa di generare il feed vero e proprio, impostando dei parametri su quali articoli devono essere inclusi:

add_action( 'pre_get_posts', array( __CLASS__, 'pre_get_posts' ) );

Dopo che il codice è attivo sul blog, vai nel pannello di controllo, e sotto Impostazioni > Permalink, semplicemente clicca sul pulsante per salvare quei parametri, senza cambiare nulla. Questo fa in modo che WordPress ricarichi le regole di riscrittura degli indirizzi che gestisce, aggiungendo la nuova URL per il feed. Semplice, no?

Lascia un commento