Afficher les derniers commentaires dans votre blog sans widget

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, …)
[php] <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; ?> [/php]

Laisser un commentaire

15 Commentaires

  1. 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;

    ?>

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

  2. 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ù ?

    1. 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. 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 ^_^

    1. 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 :)

  10. Bonjour, Je sais que je ne suis pas dans l’endroit approprier mais je vais poser quand même ma question puisque il y des experts ici :)

    Ma question est la suivante:

    Je voudrais ajouter un slidshow mais avec la possibilité d’afficher les commentaires des utilisateur au-dessous de chaque article dans le slideshow, est ce que c’est faisable ?

    Bien Cordialement

    1. Aucune réponse !

      Je m’adresse à vous aussi le modérateur :)

      Merci

  11. Bonjour,

    Super merci, ça fonctionne parfaitement chez moi :-) J’avais discuté avec un développeur il y quelques temps d’utiliser directement des ordres SQL dans les programmes mais d’utiliser à la place les fonctions de lecture de WordPress. La méthode que vous indiquez ici est sans danger ?

    Merci