Simple utilisation de Simplepie

Je voudrais simplement afficher quelques flux RSS sur un blog WordPress, en français, anglais, arabe et hébreux.

Simplepie, qui traite les problèmes d’encodage, est donc la solution de choix.

Pour pouvoir modifier le code de mon blog wordpress, il faut bien évidemment qu’il soit installé chez mon hébergeur, et non pas chez WordPress.com.

J’ai donc téléchargé la toute dernière version de WordPress : 2.3.2. qui, me semble-t-il, n’est pas encore traduite en français, et je l’ai installée en 5 minutes.

J’ai téléchargé la toute dernière version de Simplepie : Simplepie 1.1 (attention, il semble qu’elle utilise PHP 5 uniquement).

J’ai pas mal tâtonné pour savoir où placer simplepie.inc, parce que j’allais devoir l’utiliser dans un template wordpress qui est enfoui dans l’arborescence des fichiers. Finalement, je l’ai mis dans la racine du site, avec l’index.php de mon WordPress, qui ne fait qu’appeler les différents éléments du template.

Du coup, j’ai dû créer le dossier cache directement à la racine de mon WordPress également. J’ai fixé les droits d’écriture (chmod à 777). Il restait à mettre les fichiers de simplepie au bon endroit, et j’ai donc transféré tout le dossier idn à la racine de WordPress. Je conseille vraiment de ne pas modifier l’emplacement du cache, car il est appelé de très nombreuses fois par simplepie.inc. Les dossiers cache et idn doivent donc être dans le même répertoire que simplepie.inc.

Ensuite, pour lancer simplepie, j’ai pas mal bataillé avec les tutoriaux du site (problèmes de fonctions non définies, de noms d’objets incorrects…). J’ai fini par m’en sortir en prenant le code dans le dossier de demo qui est dans le package Simplepie (au moins ce code est cohérent avec lui-même).

J’ai donc copié de grands passages de multifeeds.php et ça a fini par marché…

Juste une remarque, il faut modifier le chemin de simplepie.inc :

require_once(‘simplepie.inc’);
require_once(‘./idn/idna_convert.class.php’);

Sauf que, avec tout ce temps perdu, je n’ai pas réussi à définir le nombre d’éléments de chaque flux à agréger. J’adopte temporairement la solution de traiter chaque flux séparément.

foreach($feed->get_items(0,1) as $item):

(modifier les paramètres entre parenthèses, c’est tout ce que j’ai trouvé pour l’instant pour ne faire afficher qu’un seul item par flux)

et je ne sais toujours pas non plus comment limiter la longueur du texte agrégé.
Il me vient à l’esprit que le plugin SimplepieWP, permettait de faire tout cela avec le sourire.
A suivre… (la semaine prochaine, ça se fera peut-être en 5 minutes…).

Ah oui, pour voir le résultat (pour l’instant un seul flux agrégé), c’est ici.