,

WordPress : comment personnaliser l’affichage de vos commentaires

Comment personnaliser l'affichage de vos commentaires

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:

wp_list_comments('type=comment&callback=mytheme_comment');

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 :

function mytheme_comment($comment, $args, $depth) {
   $GLOBALS['comment'] = $comment; ?>
   <li <?php comment_class(); ?> id="li-comment-<?php comment_ID() ?>">
     <div id="comment-<?php comment_ID(); ?>">
      <div class="comment-author vcard">
         <?php echo get_avatar($comment,$size='48',$default='<path_to_url>' ); ?>

         <?php printf(__('<cite class="fn">%s</cite> <span class="says">says:</span>'), get_comment_author_link()) ?>
      </div>
      <?php if ($comment->comment_approved == '0') : ?>
         <em><?php _e('Your comment is awaiting moderation.') ?></em>
         <br />
      <?php endif; ?>

      <div class="comment-meta commentmetadata"><a href="<?php echo htmlspecialchars( get_comment_link( $comment->comment_ID ) ) ?>"><?php printf(__('%1$s at %2$s'), get_comment_date(),  get_comment_time()) ?></a><?php edit_comment_link(__('(Edit)'),'  ','') ?></div>

      <?php comment_text() ?>

      <div class="reply">
         <?php comment_reply_link(array_merge( $args, array('depth' => $depth, 'max_depth' => $args['max_depth']))) ?>
      </div>
     </div>
<?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 :
<?php wp_list_comments('type=comment'); ?>

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

 

 

 

2 réponses
  1. Raphaël
    Raphaël dit :

    Bonjour ! Merci pour tous ces conseils que vous nous donnez ! J’ai une petite question, peut être que vous pourriez m’aider à trouver une piste de recherche ..
    J’ai activé la fonction pour demander à l’utilisateur de devoir se connecter pour pouvoir laisser un commentaire, j’utilise Genesis pour pour la création de mon thème, seulement je ne vois pas quelle fonction ou hook ou filtre pour modifier la phrase « Vous devez être connecté pour rédiger un commentaire », j’aimerai pouvoir changer le lien de la page de connexion par un autre.. Si vous aviez la bonne réponse ou je peux aller voir ce serai formidable !? Bone journée ! ^^

    Répondre

Répondre

Se joindre à la discussion ?
Vous êtes libre de contribuer !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *