Sélectionner une page

Il existe une fonction sous WordPress appelée wp_list_comments() pour une utilisation dans la page comments.php de votre thème. Elle prend automatiquement en charge de l’affichage de l’auteur, la date, avatar, commentaire de texte, etc… nous allons voir comment personnaliser l’affichage de vos commentaires.

La fonction wp_list_comments()

Je ne vais pas répéter tout ce qui peut être trouvé sur le Codex, voir wp_list_comments() pour plus de détails, mais globalement la fonction a un ensemble assez limité d’arguments, dont aucun ne se rapportent à certains des éléments mentionnés ci-dessus. Par exemple, il n’est pas possible d’exclure la date de commentaire, ou avatar, en jouant directement avec les arguments de la fonction.
 

Personnaliser l’affichage de vos commentaires avec le callback

Heureusement, les développeurs WP ont vu bon d’inclure l’utilisation d’une fonction de rappel (Callback) dans wp_list_comments(). La fonction de rappel est appelée comme ceci:
[pastacode manual= »wp_list_comments(‘type%3Dcomment%26callback%3Dmytheme_comment’)%3B » provider= »manual » lang= »php »/]
Ce que cela signifie est que wp_list_comments() retournera la fonction de rappel plutôt que sa sortie par défaut. Donc, pour créer notre propre production personnalisée, nous avons simplement besoin de définir une fonction appropriée de rappel, dans cet exemple, une fonction appelée mytheme_comment, dans notre fichier functions.php de notre thème.
 

Une fonction de rappel personnalisée « par défaut »

Voici la fonction de rappel personnalisée, exemple montré dans le Codex :
[pastacode manual= »function%20mytheme_comment(%24comment%2C%20%24args%2C%20%24depth)%20%7B%0D%0A%20%20%20%24GLOBALS%5B’comment’%5D%20%3D%20%24comment%3B%20%3F%3E%0D%0A%20%20%20%3Cli%20%3C%3Fphp%20comment_class()%3B%20%3F%3E%20id%3D%22li-comment-%3C%3Fphp%20comment_ID()%20%3F%3E%22%3E%0D%0A%20%20%20%20%20%3Cdiv%20id%3D%22comment-%3C%3Fphp%20comment_ID()%3B%20%3F%3E%22%3E%0D%0A%20%20%20%20%20%20%3Cdiv%20class%3D%22comment-author%20vcard%22%3E%0D%0A%20%20%20%20%20%20%20%20%20%3C%3Fphp%20echo%20get_avatar(%24comment%2C%24size%3D’48’%2C%24default%3D’%3Cpath_to_url%3E’%20)%3B%20%3F%3E%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%3C%3Fphp%20printf(__(‘%3Ccite%20class%3D%22fn%22%3E%25s%3C%2Fcite%3E%20%3Cspan%20class%3D%22says%22%3Esays%3A%3C%2Fspan%3E’)%2C%20get_comment_author_link())%20%3F%3E%0D%0A%20%20%20%20%20%20%3C%2Fdiv%3E%0D%0A%20%20%20%20%20%20%3C%3Fphp%20if%20(%24comment-%3Ecomment_approved%20%3D%3D%20’0′)%20%3A%20%3F%3E%0D%0A%20%20%20%20%20%20%20%20%20%3Cem%3E%3C%3Fphp%20_e(‘Your%20comment%20is%20awaiting%20moderation.’)%20%3F%3E%3C%2Fem%3E%0D%0A%20%20%20%20%20%20%20%20%20%3Cbr%20%2F%3E%0D%0A%20%20%20%20%20%20%3C%3Fphp%20endif%3B%20%3F%3E%0D%0A%0D%0A%20%20%20%20%20%20%3Cdiv%20class%3D%22comment-meta%20commentmetadata%22%3E%3Ca%20href%3D%22%3C%3Fphp%20echo%20htmlspecialchars(%20get_comment_link(%20%24comment-%3Ecomment_ID%20)%20)%20%3F%3E%22%3E%3C%3Fphp%20printf(__(‘%251%24s%20at%20%252%24s’)%2C%20get_comment_date()%2C%20%20get_comment_time())%20%3F%3E%3C%2Fa%3E%3C%3Fphp%20edit_comment_link(__(‘(Edit)’)%2C’%20%20’%2C »)%20%3F%3E%3C%2Fdiv%3E%0D%0A%0D%0A%20%20%20%20%20%20%3C%3Fphp%20comment_text()%20%3F%3E%0D%0A%0D%0A%20%20%20%20%20%20%3Cdiv%20class%3D%22reply%22%3E%0D%0A%20%20%20%20%20%20%20%20%20%3C%3Fphp%20comment_reply_link(array_merge(%20%24args%2C%20array(‘depth’%20%3D%3E%20%24depth%2C%20’max_depth’%20%3D%3E%20%24args%5B’max_depth’%5D)))%20%3F%3E%0D%0A%20%20%20%20%20%20%3C%2Fdiv%3E%0D%0A%20%20%20%20%20%3C%2Fdiv%3E%0D%0A%3C%3Fphp%0D%0A%20%20%20%20%20%20%20%20%7D » provider= »manual » lang= »php »/]
Fondamentalement, si nous devions exécuter cette fonction et afficher sa sortie, nous voyons exactement le même résultat que les commentaires habituels sur ce site. En d’autres termes, cette fonction va produire le même résultat que le code suivant dans le fichier de comments.php d’un thème typique :
[pastacode manual= »%3C%3Fphp%20wp_list_comments(‘type%3Dcomment’)%3B%20%3F%3E » provider= »manual » lang= »php »/]
Maintenant, nous avons une base de travail, il n’est pas trop difficile de modifier cette fonction pour nous donner la sortie que nous voulons.
 

Comment personnaliser l’affichage de vos commentaires

Simplifions les étapes de sorte que vous pouvez faire quelque chose de similaire sur votre propre site.

  • Regardez votre comments.php fichier et trouver l’appel à wp_list_comments() (ex:’callback’ => ‘the_list_comments’)
  • Dans wp_list_comments(), ajouter votre appel personnalisé (ex:’callback’ => ‘my_list_comments’)
  • Prenez la fonction de rappel personnalisé dans notre exemple (ou celui du Codex) et collez ce code dans votre fichier functions.php
  • Assurez-vous que le nom de la fonction est la même dans les deux wp_list_comments() fonction dans comments.php , et du fichier  functions.php de votre thème
  • Modifier la fonction de rappel dans votre fichier functions.php comme vous souhaitez. Remarque : ne pas inclure une fermeture li tag – WordPress ajoute ce automatiquement en fonction du commentaire sortie.
  • Ajouter de nouveaux styles à votre fichier style.css

 
 
 

Florent Maillefaud

WordPress : comment personnaliser l'affichage de vos commentaires 1Webmaster à Sablons (Isère) / Création de sites internet WordPress.

Micro-entrepreneur depuis 2012, je vous propose la création ou la refonte de votre site internet sous WordPress et à votre image.

Que ce soit un site vitrine, un blog ou un site e-commerce pour votre entreprise ou association, laissez votre empreinte sur le web !

Share This