Websourcing.fr

Websourcing.fr » Actualités, Web, Logiciels et Fun

Image pour [Wordpress] Rendre votre thème compatible avec toutes les versions des commentaires

[Wordpress] Rendre votre thème compatible avec toutes les versions des commentaires

Voici plusieurs mois que Wordpress 2.7+ est sorti. Avec ce nouveau moteur, Automattic nous a livré un nouveau système d’affichage et de gestion des commentaires.

Comme je tournais sous Wordpress Mu, je n’avais pas pu bénéficier de cette nouvelle version, WPMu arrivant systématiquement avec quelques mois de retard. Maintenant que j’ai migré sous Wordpress 2.7.1, je dois changer mon thème (en cours à l’heure où j’écris ce billet).

Malheureusement, les thèmes qui avaient été réalisé pour Wordpress 2.6- ne peuvent profiter du nouveau système qui demande quelques modifications. Ceci n’est pas vraiment gênant dans la mesure où les anciens commentaires fonctionnent toujours très bien. En revanche il est dommage de se priver de fonctionnalités intéressantes (commentaires imbriqués, réponse, citation …).

wordpress-threaded-comments-500x210

Pour tout savoir sur les nouveautés de Wordpress 2.7+, visitez cette page de Papy Geek qui détaille l’ensemble.

Si vous avez développé un thème original, ou acheté un thème dont les commentaires ne sont pas conformes, voici une astuce qui vous permettra de rendre celui-ci compatible avec les deux moteurs.
Pratique pour cibler l’ensemble de la communauté des utilisateurs de Worpdress, y compris ceux qui n’ont pas migré.

La première technique pour savoir sur quel version le blog tourne, il suffit de vérifier l’existence de la fonction wp_list_comments. Ceci se fait de la manière suivante:

if (function_exists('wp_list_comments')) :
// ici on insère le code pour le nouveau système
else :
// ici on insère le code pour l'ancien système
endif;

Bien sûr il est possible de vérifier le numéro de version du moteur, mais comme nous allons nous servir de cette fonction, autant le faire de cette manière.

Le mieux est de séparer le template utilisé par les anciens commentaires de celui des nouveaux.
Ensuite l’une des solutions les plus séduisantes consiste à inclure l’ancien template dans le nouveau en cas de besoin. Ceci permet de ne pas modifier la navigation et assure la compatibilité descendante.

Pour ce faire, on peut utiliser un filtre et le test précédent comme ceci:

< ?php
add_filter('comments_template', 'old_comments');
function old_comments($file) {
	if ( !function_exists('wp_list_comments') )
		$file = TEMPLATEPATH . '/old.comments.php';
	return $file;
}
?>

Le code précédent doit être copié dans le fichier functions.php.

En faisant ainsi, vous assurez à vos thèmes une rétro-compatibilité qui est intéressante et évitera bien des frustrations à vos utilisateurs. Les anciens blogs utiliseront automatiquement le fichier old.comments.php (vous pouvez renommer comments.php en old.comments.php et créer un nouveau comments_template.php.

Crédits: ottodestruct


Cet article vous a plu ?

Commenter Laissez un commentaire | Recevez les mises à jour Souscrivez au flux RSS | Partager : Twitter AddInto Fuzz del.icio.us Wikio FR Blogonet
Websourcing.fr - Tous droits réservés. Reproduction interdite sans accord préalable.
  1. Répondre Citer #1 par Dimitry Rebrov le 25 mai 2009 - 13:16

    wow, merci! =)

(Ne sera pas publié)
  1. Pas encore de trackback.