Afficher les derniers commentaires dans votre blog sans widget

6 août 2010 dans Tutoriels Wordpress

derniers-commentaires

Par défault WordPress gère l’affichage des derniers commentaires, cependant pour permettre une totale customisation des données et du css j’utilise ce petit bout de code à intégrer par exemple dans sidebar.php ou ailleurs dans la template :

  • On peut ainsi gérer le nombre de caractère maximum des commentaires pour une intégration parfaite : SUBSTRING(comment_content,1,30) ici 30 caractères max.
  • Gérer le nombre de commentaires: LIMIT 10 ici 10 commentaires max.
  • Afficher les informations voulues (date, auteur, …)
<h2>Derniers commentaires</h2>
 <?php
 global $wpdb;
 $sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID,
 comment_post_ID, comment_author, comment_date_gmt, comment_approved,
 comment_type,comment_author_url,
 SUBSTRING(comment_content,1,30) AS com_excerpt
 FROM $wpdb->comments
 LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID =
 $wpdb->posts.ID)
 WHERE comment_approved = '1' AND comment_type = '' AND
 post_password = ''
 ORDER BY comment_date_gmt DESC
 LIMIT 10";
 $comments = $wpdb->get_results($sql);
 $output = $pre_HTML;
 $output .= "\n<ul>";
 foreach ($comments as $comment) {
 $output .= "\n<li>".strip_tags($comment->comment_author)
 .":" . "<a href=\"" . get_permalink($comment->ID) .
 "#comment-" . $comment->comment_ID . "\" title=\"on " .
 $comment->post_title . "\">" . strip_tags($comment->com_excerpt)
 ."</a></li>";
 }
 $output .= "\n</ul>";
 $output .= $post_HTML;
 echo $output;
?>

Articles Relatifs

12 Commentaires

  1. Pascal

    Bonjour !

    Merci pour ce bout de code très utile. J’aimerais afficher la date à la place de l’auteur, mais ne pas l’avoir dans son format USA, comment puis-je modifier le code pour que cela affiche au format que je souhaite ?`

    voici mon bout de code adapté

    comments
    LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID =
    $wpdb->posts.ID)
    WHERE comment_approved = ’1′ AND comment_post_ID = ’250′ AND comment_type =  » AND
    post_password =  »
    ORDER BY comment_date_gmt DESC
    LIMIT 3″;
    $comments = $wpdb->get_results($sql);

    $output = $pre_HTML;
    $output .= « \n »;
    foreach ($comments as $comment) {
    $output .= « \n« .strip_tags($comment->comment_date))
    . »: » .  »
     » . strip_tags($comment->com_excerpt)
    . »« ;
    }
    $output .= « \n »;
    $output .= $post_HTML;
    echo $output;

    ?>

    • ben-wpSpirit

      Essayes ça < ?php echo comment_date(' H:i',$comment->comment_ID);?> min le< ?php echo comment_date(' j F Y',$comment->comment_ID);?>

  2. laurent

    Bonjour !
    super le code !
    Je suis débutant, tout marche avec votre code,
    mais est-il possible de ne sélectionner que les commentaires d’une seule catégorie ?

  3. Je mets de côté mais je vais continuer à chercher s’il existe pas une méthode plus propre :)

  4. Trop fort mon pote. Je cherchais ça et je tombe sur toi. C’est vraiment toi le chef !

  5. Un peu sale mais ça marche.

    Les variables $pre_html et $post_html sortent d’où ?

    • ben-wpSpirit

      Dans l’exemple ces variables ne servent à rien puisqu’elles ne sont pas déclarées $pre_html $post_html peuvent contenir une balise div ouvrante et fermante.

  6. très intéressant. merci beaucoup

  7. Merci je vais l’utiliser

  8. Lemondes

    Bonjour, super ça marche bien ^_^

    par contre je n’arrive pas à trouvé, car sur mon blog j’affiche dans 2 div côte à côte qui utilise ce code les derniers commentaires et je voudrais que sur la seconde div ce soit la suite des commentaires de la première div donc un truc en php que j’arrive pas à trouver du style même code +5 … Merci d’avance ^_^

    • Lemondes

      Ok trouvé ^^

      dans LIMIT on peux mettre 2 chiffres séparés par une virgule comme ça ‘LIMIT 0, 5″;’ le 1er chiffre c’est le début d’entrée (comme ça on peux commencer à 5 par exemple), et le second chiffre limite l’affichage de résultat… Si ça peux servir ^^

  9. Bonjour,

    Je ne sais pas si quelqu’un va pouvoir m’aider : je cherche à afficher l’image du dernier portfolio(en date) de mon blog dans un widget texte/html… je m’y connais assez mal en php donc je ne sais pas si je peux adapter ton code…

    Merci d’avance :)

Laisser un commentaire