simple-tagging et WP 2.3

J’aime pas le PHP. Vraiment pas. Peu confiant, j’upgrade mon wordpress en version 2.3.3. Jme dis, ces bestiaux troués jusqu’à l’os, ‘vaut mieux les tenir à jour, autrement c’est un coup à se retrouver avec des psybncU53R dans votre DB. Assez surpris, l’upgrade semble se passer sans encombres, et finalement imil.net me parait n’avoir aucun défaut suite à cette migration. Et là, Madame Balise lache un “tiens ils marchent pas tes tags iMil”. Bah ouais. Ils marchent plus tes tags iMil.

Alors je vais evidemment jeter un œil sur la homepage du plugin simple-tagging ou je lis que ce dernier n’est simplement “pas supporté” sous WP 2.3. toussote. Je lis également un peu partout que plusieurs choix s’offrent à moi :

. passer au plugin “simple-tags”, du même auteur . passer au système de tagging de WP 2.3

J’avais bien aimé les features de simple-tagging, alors mon choix se porte evidemment sur cette fameuse nouvelle version. J’installe, j’active, et non: “gnagnagna plugin triggered a fatal error gnagnagna”. Bien. N’ayant pas spécialement envie de passer des heures à comprendre ce qui foire, je switche sur le système de tagging de WP 2.3. Seulement voila, y’a un truc que j’aimais bien dans simple-tagging, c’était la possibilité d’embedder les tags dans le contenu du texte, et cette feature là n’existe pas dans le système “natif” de WP. On me fait savoir que ce serait facile à implémenter et qu’il existe des hooks pour se simplifier ce type de modification. Mais je le redis, j’aime pas le PHP, et j’ai fondamentalement pas envie de me lancer dans l’ecriture d’un truc que je vais devoir maintenir de version en version. Donc, non.

Finalement, après une séance de lecture du code de base de WP, je m’aperçois que tags et catégories sont gentiment associés, je me demande alors si en remplaçant simplement les liens associés aux tags /?tag= par /?cat=, je ne pourrais pas, pour l’utilisation que je fais de ce plugin, feinter bêtement. Et finalement, si. Du coup, messieurs mesdames, si vous souhaitez garder votre vieux plugin simple-tagging, remplacez simplement dans l’interface Tags -> Tag search base la valeur tag par cat, et vous vous épargnerez bien des souffrances. En prime, afin de s’assurer que d’anciens liens sur des categories fonctionneront toujours, voici une petite regle lighttpd :

Oh, dans la foulée, vous verrez probablement dans vos error logs des lignes de ce type :

Ceci est du à la disparition de la table post2cat, génératrice de bien des incompatibilités de plugins WP < 2.3, perso, j’ai modifié cette requete dans le fichier simpletagging.php par : $query = “SELECT term_taxonomy_id AS cat_id, COUNT(object_id) AS numposts, UNIX_TIMESTAMP(max(posts.post_date_gmt)) + ‘” . get_option(‘gmt_offset’) . “’ AS last_post_date, UNIX_TIMESTAMP(max(posts.post_date_gmt)) AS last_post_date_gmt FROM {$wpdb->term_relationships} INNER JOIN {$wpdb->posts} posts ON object_id=posts.id WHERE 1 = 1 {$posts_pages} AND posts.post_date_gmt < = ‘” . gmdate(“Y-m-d H:i:s”, time()) . “’ {$restrict} {$timelimit} GROUP BY term_taxonomy_id ORDER BY numposts DESC “;

Pas vraiment certain que ça donne le résultat voulu, mais d’une y’a plus d’erreur, et de deux tout semble fonctionner.

C’était mon tip pourri du jour.