Les flux rss permettent de suivre automatiquement les publications d’un site. Parfois, le flux rss devient inutilisable.
Cet article propose un moyen simple de corriger le problème le plus courant : l’insertion de caractères parasites en début du flux rss généré par WordPress.
Identifier le problème
Lorsqu’un flux rss n’est plus lisible par un agrégateur (programme dédié, navigateur, client de messagerie…), il est possible de le tester avec le validateur proposé par le W3C.
Voici un flux incorrect :

Afficher le flux dans Google Chrome permet de mettre en évidence qu’un caractère parasite apparaît en tout début du flux :

Suppression des caractères parasites
Le problème vient généralement du tampon de sortie qui n’a pas été vidé avant l’émission du flux rss.
Voici un code à insérer dans le fichier functions.php du thème ou dans une extension (plugin ou mu-plugin) :
add_action( 'do_feed_rss2', 'wpdf_retire_parasites_rss',1 ); function wpdf_retire_parasites_rss() { while (ob_get_level() > 0) // tant qu'un tampon de sortie est actif { ob_end_clean(); // vider le tampon } } // fin fonction wpdf_retire_parasites_rss
Analysons ce code :
add_action( ‘do_feed_rss2‘, »,1 );
On ajoute la fonction personnalisée « wpdf_retire_parasites_rss » au crochet de type action ‘do_feed_rss2″.
Ce crochet est appelé juste avant l’émission du flux rss.
À noter : la priorité à associer à la fonction dans le crochet est maximale (1).
Analyse de la fonction « wpdf_retire_parasites_rss » :
while (ob_get_level() > 0)
La fonction s’exécute tant qu’un tampon de sortie est actif.
ob_end_clean();
La fonction nettoie le tampon courant, ce qui a aussi pour effet de le dépiler. S’il s’agissait du dernier tampon dans la pile, la boucle prend fin, sinon le tampon suivant va être nettoyé.
Ce code s’applique au flux de type « rss2 », tant pour les articles que les commentaires. Mais WordPress sait gérer plusieurs types de flux rss : rdf, rss, rss2 et atom.
Voici le code pour généraliser le nettoyage des caractères parasites à l’ensemble des flux rss fournis par WordPress :
On n’oublie pas de vérifier que le flux rss est redevenu valide :

L’extension (plugin)
Voici le code à insérer dans un fichier « .php » que vous déposez dans le sous-répertoire « plugins » ou « mu-plugins » :
Haut de page
Bonjour,
J’ai un soucis avec le flux RSS de mon site WP
En regardant j’ai l’erreur suivante:
Warning: array_filter() expects parameter 1 to be array, null given in /homepages/2/d225569217/htdocs/aloevera-bienetre-beaute/wp-includes/general-template.php on line 1135 Warning: implode(): Invalid arguments passed in /homepages/2/d225569217/htdocs/aloevera-bienetre-beaute/wp-includes/general-template.php on line 1135
Est ce qu’avec votre plugin cela va supprimer ce message et régler mon problème?
Merci d’avance
Michel