WordPress Little Trick – Rimuovere un Post dal Feed RSS nella Maniera Migliore
scritto da Francesco Gavello [+] il 13 aprile 2009 | 9 commenti in: WordPress

Ci sono moltissimi motivi per i quali vorresti poter estrarre uno o più post dal flusso del tuo feed RSS.
In WordPress, anche grazie alla notevole disponibilità di plugin, non è d’altronde così difficile trovare qualcosa di adatto allo scopo.
Tuttavia, spesso soluzioni di questo tipo sono semplicemente esagerate rispetto alle reali necessità. Se tutto ciò di cui hai bisogno è poter pubblicare un post senza che questo vada a comparire nel normale flusso RSS, forse installare pesanti plugin (che tra tutte le altre opzioni fanno forse anche ciò di cui hai bisogno) non è sempre la scelta migliore.
Senza contare che la mantenibilità di un buon layout si vede anche nei piccoli dettagli. Inscatolare le funzionalità del tema che possono non dipendere direttamente da decine di plugin esterni è sempre cosa buona.
E così, tra una colomba pasquale e un picnic, oggi ti voglio proporre un metodo veramente rapido per poter decidere di escludere una o più categorie di post dal tuo feed RSS.
Andremo a sfruttare le potenzialità del file functions.php.
Functions.php, se ricordi, non è un file indispensabile per la costruzione di un layout. Tuttavia la sua presenza diventa una vera manna dal cielo quando si vogliono spremere fino in fondo le potenzialità del nostro CMS preferito. Ne abbiamo già visto un utilizzo qualche tempo fa, parlando proprio di come assegnare un layout personalizzato ai commenti nidificati.
Creiamo dunque il nostro file functions.php nella cartella root del tema in uso.
Poi, semplicemente incolliamo al suo interno la seguente funzione, sostituendo a ID_CATEGORIA l’ID numerico assegnato da WordPress alla categoria del post che vogliamo escludere.
<?php
function myFilter($query) {
if ($query->is_feed) {
$query->set('cat','-ID_CATEGORIA');
}
return $query;
}
add_filter('pre_get_posts','myFilter');
?>
Voilà.
E’ tutto qui, davvero.
Ora, per pubblicare un post senza vederlo comparire nel tuo feed RSS non dovrai fare altro che assegnargli la categoria indicata nello snippet poco sopra.
Più facile di così
foto: Titanas
Aspetta! C'è dell'altro!
Trovato questo articolo interessante?
Condividilo sulla tua rete di contatti Twitter, sulla tua bacheca su Facebook o semplicemente premi "+1" per suggerire questo risultato nelle ricerche in Google. Diffondere contenuti che trovi rilevanti aiuta questo blog a crescere. Grazie!
9 Commenti
Update 12/02/2012: Il Regolamento Commenti è cambiato! Leggi ciò che serve sapere!
Lascia un commento





Ancora una volta un articolo che dimostra la tua competenza e capacità in materia! Bravo Francesco, ottimo consiglio! Ti ho mandato una mail… per adesso non ti vedo su skype, appena puoi rispondimi!!!
Un buon sistema, molto semplice e funzionale, utilizzare le funzioni personalizzate nei template WP aiuta a gestire l’output standard che oltre ad evitare l’ennesimo plugin è una soluzione molto più pulita ed elegante.
Grazie ragazzi
@Mauro: stupendo layout; spero di leggere molti tuoi articoli nei prossimi tempi
Prezioso post. Non so ancora perché, ma sento che prima o poi mi servirà. Perciò me lo conservo in dispensa! Grazie
[...] 1) WordPress Little Trick – Rimuovere un Post dal Feed RSS nella Maniera Migliore [...]
[...] ciliegina sulla torta, rimuovi la categoria “sideblog” anche dal feed RSS. [...]
scusami Francesco,
questa soluzione ha degli svantaggi rispetto a quella proposta da te?
direttamente in feedburner
http://example.com/feed?cat=-3&cat=-4&cat=-5
Nessuno svantaggio particolare; con l’utilizzo del file functions.php eviti di ricorrere a impostazioni su servizi di terze parti e controlli tutto “in casa”
Appendere le categorie da filtrare al fondo degli URL indicati a FeedBurner torna invece molto utile nel caso si propongano diversi feed filtrati per diverse categorie (una scelta imho controproducente, ma percorribile in determinati casi)
ok grazie
lo chiedevo perchè utilizzo un tema premium e il file functions è pieno zeppo di cose e se aggiungo quel codice, produce qualche errore, quin di cercavo altre possibili soluzioni.