Extension WP Filter & Combine RSS Feeds pour gérer des flux RSS complexes

Mathieu Chartier CMS (WordPress...) 2 commentaires

Je vous propose de découvrir mon dernier plugin WordPress en date, spécialisé dans l'agrégation de fichiers RSS (valides...) et la recherche au sein de ces flux. Il existe déjà d'excellents plugins à ce sujet comme Feedzy RSS ou RSS Agregator mais ceux-ci proposent des versions premium que les fans d'open source détestent. J'ai donc choisi de tout faire à partir de zéro et de proposer de multiples options et filtres gratuitement dans l'extension WP Filter & Combine RSS Feeds.

J'ai créé cette extension à l'occasion d'une discussion avec M. Bellamy (DGA du département de l'Oise au moment d'écrire ces lignes) après avoir longuement réfléchi aux besoins demandés et surtout aux possibilités techniques qui s'offraient à nous. Il ne s'agit que d'un début (version 0.3.2 au moment d'écrire ces lignes) et comme chacun de mes programmes, ils peuvent toujours être améliorés, boostés, et complétés. Je tâcherai d'ajouter des fonctionnalités à l'avenir si nécessaire... ;-)

Vous pouvez télécharger sans plus attendre le plugin ci-dessous et lire ses spécificités dans la suite de cet article :

Télécharger “WP Filter & Combine RSS Feeds”wp-filter-combine-rss-feeds.zip – Téléchargé 128 fois – 1 MB

Que propose WP Filter & Combine RSS Feeds ?

Le plugin permet d'importer des flux RSS et de les combiner pour n'en faire qu'un seul, classé et à afficher dans les pages web. Il suffit d'ajouter des sources dans la liste avec un nom et une URL de flux RSS (valide idéalement, sinon le plugin notifie une erreur). Ensuite, il convient d'importer les flux provenant de chaque source. Et enfin, il ne vous reste qu'à utiliser l'un des deux shortcodes disponibles pour afficher les résultats dans vos pages :

  • [wpfcrf] pour afficher les flux RSS (avec ou sans formulaire de recherche) ;
  • [wpfcrf-form] pour afficher le formulaire de recherche à l'endroit où vous le désirez (optionnel, si vous n'avez pas déjà ajouté le formulaire via le premier shortcode).

Comme vous le voyez, c'est très simple d'usage. Vous pouvez ensuite paramétrer toutes les options que vous souhaitez au sein de la page destinée à cet effet dans l'extension.

Importation des flux RSS dans WP Filter & Combine RSS Feeds

Personnaliser l'affichage et la recherche

L'extension propose de nombreuses options pour personnaliser l'affichage, que ce soit pour afficher ou non des éléments, mais aussi pour obtenir l'ensemble des sélecteurs CSS utilisés pour l'affichage des résultats. Vous pouvez donc tout-à-fait choisir parmi les thèmes proposés ou tout simplement créer votre propre rendu visuel.

Il existe également de nombreux paramètres pour adapter les méthodes de recherche comme bon vous semble. Cela reste simple d'accès donc testez pour trouver la variante qui vous convient. Vous pouvez choisir votre mode de pagination, l'emplacement du formulaire de recherche, le format des dates affichées, l'ordre des résultats, etc.

Panneau d'options de l'extension WordPress WP Filter & Combine RSS Feeds

Compatible WordPress multilingue et multisite

Je me suis efforcé de rendre le plugin WP Filter & Combine RSS Feeds disponibles avec les désirs de multilinguisme de certains sites web. Ainsi, toutes les chaînes peuvent être traduites via le logiciel gratuit POEdit ou une extension comme l'excellente Loco Translate. Côté multisite, je n'ai pas pu testé sur un site en production car je n'ai aucun multisite sous la main, j'ai donc testé en local et à priori, tout semble fonctionner...

Côté technique, qu'utilises WP Filter & Combine RSS Feeds ?

J'ai dû faire des choix techniques et tout n'a pas été évident. L'usage courant de PHP pour la lecture de flux RSS veut que l'on se tourne vers simplexml. Certes, les méthodes de simplexml sont simples à utiliser mais c'est assez gourmand en ressources. J'ai donc fait le choix d'utiliser XMLReader en priorité car elle offre un meilleur rendement global. J'ai tout de même ajouté une option pour switcher vers simplexml si vous préférez, donc les deux méthodes sont disponibles selon votre choix...

Concernant la recherche, je commence à avoir un peu l'habitude depuis mon moteur de recherche PHP et mon plugin associé WP Advanced Search. Il était légitime pour moi de ne pas opter pour la méthode tant utilisée LIKE en SQL au profit de REGEXP qui est souvent bien plus efficace. J'ai également procédé à quelques filtrages de caractères pour gérer au mieux les encodages, et cela ne semble pas trop mal.

Pour le reste, rien de fou, j'utilise essentiellement les fonctionnalités du codex de WordPress tel que les hooks (filtres et actions) et des méthodes comme get_posts(), etc.