WordPress 2.5, point technique
Résumées ci-dessous, quelques modifications pascales sur ce blog. Cela ne risque pas d’intéresser grand monde, mais je documente systématiquement mes modifications.
- Le passage sous WordPress 2.5 (RC1) s’est très bien passé.
Le seul accroc du Release Candidate [review] est l’encodage UTF-8, qui ne fonctionne pas du premier coup ; heureusement, il suffit de supprimer/commenter la ligne
DB_CHARSETdu fichierwp-config.php[forum, solution].WordPress 2.5 possède son propre système de tagging, il va donc falloir revenir sur ce point. J’utilisais TechnoTag et je ne vois aucun moyen de conversion si ce n’est la conversion manuelle… mais apparemment les deux systèmes cohabitent donc le statu quo est envisageable.
- Les permaliens des petites choses sont plus courts.
À partir du volume 76, les liens
/petites-choses/petites-choses-76/sont remplacés par des liens/petites-choses/76. Voici le détail de la manip pour convertir les volumes précédents, en notant α le suffixewpmodifiable des installations WordPress :- Conversion des adresses dans la base SQL (table
α_posts, champpost_name) :update α_posts set post_name = replace(post_name,'petites-choses-','');Résultat attendu : suppression de la seconde référence
petites-chosesdans les permaliens ; 76 lignes affectées ; - Conversion des liens inter-volumes (table
α_posts, champpost_content) :update α_posts set post_content = replace(post_content,'petites-choses/petites-choses-','petites-choses/');Résultat : 22 cross-refs de modifiés) ;
- Une ligne de redirection sous Apache avec
mod_rewrite, pour ne pas briser les liens externes existants et assurer la transition dans les moteurs de recherche :RewriteRule ^blog/petites-choses/petites-choses-(.*)/ /blog/petites-choses/$1 [R=301,L](À la place de
(.*)il faudrait employer le regex pourun ou plusieurs chiffres de 0 à 9
, mais ça tient du détail insignifiant)
- Conversion des adresses dans la base SQL (table
- J’ai basculé sur le moteur de recherche interne de WordPress.
Le formulaire de recherche précédent, basé sur Google, ne renvoie pas suffisamment de résultats, et en renvoie d’autres inutilisables. Faîtes le test avec la requête
"tripoli six" site:phnk.com: Yahoo! renvoie 11 résultats et le premier correspond au résultat objectivement le plus pertinent ; Google renvoie 3 résultats de mauvaise qualité. La bonne réponse est : 5 résultats pertinents (Yahoo! et Google indexent des pages d’archivage intermédiaires). - Dû à un réglage un peu idiot mais plein de bonnes intentions, il était possible d’accéder aux archives en tapant directement
/blog/petites-choses/en remplacement de/blog/categorie/petites-choses/. En revanche, dans ce cas, les liens de navigation sur la pageArchives
(page/2/et consorts) ne fonctionnaient pas.C’est réglé grâce à
mod_rewrite, qui rajoute désormais le marqueurcategorielorsque c’est nécessaire :- Une première ligne pour ne pas modifier les adresses contenant déjà
categorie:RewriteCond %{REQUEST_URI} !categorie - Une deuxième ligne pour insérer
categoriedans les adresses :RewriteRule ^blog/(.*)/page/(.*)/ /blog/categorie/$1/page/$2/ [R=301,L](Même remarque que pour le point 3 de la modification 2 : il y a un regex correct pour le second code>(.*) mais qui n’est pas obligatoire.)
- Une première ligne pour ne pas modifier les adresses contenant déjà
- Le chiffrage des commentaires a changé.
Jusqu’à présent les numéros s’affichant en grisé en haut à droite de chaque commentaire à titre de permalien indiquaient l’identifiant unique (
comment_ID()) du commentaire en question. Le spam a fait que ces numéros ont rapidement dépassé les 23 000 ; cela se rectifie en superposant un système de numérotation unique, où le commentaire est repéré par son ordre d’arrivée sur la page :- Sur la page de gabarit
comments.php, avant d’entrer dans la boucleforeach ($comments as $comment)des commentaires, on déclare une variable nulle qui servira de compteur :<?php $hits = 0; ?> - À l’intérieur de la boucle, on insère un compteur :
<?php $hits ++; ?> - Plus loin, dans la déclaration du
blockquotecontenant le commentaire, on insère l’identifiant uniquecomment_ID():[...] <?php echo $oddcomment; ?> comment” id=”comment-<?php comment_ID() ?>”> - Enfin, on appelle le numéro pour l’afficher avec mention du permalien ; le nouveau numéro
$hitsapparaît ici :<div class="number"><a href="#comment-<?php echo $hits; ?>" id="comment-<?php echo $hits; ?>" title="Lien permanent vers ce commentaire">#<?php echo $hits; ?></a></div>
Ce changement n’a pas brisé les liens établis précédemment : l’udentifiant unique est toujours présente, la nouvelle numérotation utilise un élément différent (
div class="number" > a), ce qui me permet d’avoir deux numéros sur chaque commentaire : son identifiant unique, et son numéro sur la page à laquelle il correspond ; par exemple :id="comment-23501"etid="comment-2"pour ce commentaire, disponible par son numéro et par son identifiant unique. - Sur la page de gabarit