Fran6art 13 ans de blogging par Francis Chouquet

Création Thème WordPress | Tutorial #16: Insertion des commentaires

0

Ce tutoriel est le seizième d’une série d’articles sur la création d’un thème pour WordPress de A à Z. Si vous prenez le train en cours et si vous souhaitez créer votre propre thème de A à Z, je vous conseille fortement de commencer par le premier tutoriel de la série.

Si vous avez bien tout suivi, vous avez dû vous rendre compte qu’il manque quelque chose d’important à notre thème: les commentaires ! Aujourd’hui, nous allons les ajouter à nos articles. Sans commentaires, un billet et son blog ne sont plus les mêmes ! 😉

Création du template comments.php

Nous allons devoir créer un nouveau template, comments.php et y insérer le contenu de ce document. Ici, et pour la première fois dans cette série de tutoriels, je ne vais pas trop vous expliquer le contenu de ce template. Ce serait trop long et trop compliqué. Ce qu’il faut savoir c’est que c’est le template par défaut pour les commentaires et celui utilisé le plus souvent sur les différents thèmes. Dans un prochain billet, je ferai une description détaillée du fichier mais ici, on n’en a pas vraiment besoin. Dès lors que l’on changera quelque chose, ce sera au niveau des feuilles de style, des CSS.

Donc, une fois votre template créé et le contenu du fichier copié, enregistrez le document et fermez-le.

Mise à jour du template single.php

Dans le tutoriel précédent on a créé le template single.php qui nous permet d’afficher les articles un par un, et surtout qui nous permettra de paramétrer différemment ces pages des autres pages du blog. Dans ce template, on va insérer une ligne de code qui va nous permettre d’aller chercher dans le template comments.php l’info dont a besoin pour afficher les commentaires. Cette ligne, on va l’insérer avant le « php endwhile », et après le « php the_content » pour que les commentaires s’affichent directement sous le contenu des articles:

1 2 3 
<div class="comments-template"> <?php comments_template(); ?> </div>

Ici, on a ajouté une classe « comments-template » pour pouvoir modifier le style des commentaires par la suite.

Une fois le code inséré, enregistrez votre template et allez voir sur votre navigateur ce que ça donne. Si tout s’est bien passé, l’espace dédié aux commentaires devrait apparaître sous l’article. Laissez donc un commentaire pour voir ce que ça donne !

La suite avant la fin de la semaine ! Promis !

Tutoriel n°17: « navigation, page non trouvée et validation xhtml du theme »

Et si ça vous intéresse, avec des amis, on a créé notre boutique de ventes de thèmes WordPress, Peaxl. Venez jetez un oeil ! 😉

Fran6

105 Commentaires

  • Au cas où cela viendrait à d’autres personnes j’ai revu la configuration de mon serveur local et ai modifié dans le fichier php.ini la valeur output_buffering = off par output_buffering = 4096

    Encore merci pour le tutoriel ….

  • Catherine

    bonjour et merci pour toutes ces informations.
    sous WordPress Thème k2 je souhaite mettre à chaque article mon nom, la date et le lien pour laisser un commentaire EN FIN DE PAGE et je ne trouve pas comment modifier cela, car c’est toujours en début d’article.
    Merci pour la réponse.

  • reno

    Bonjour,

    Etait il possible de n’avoir que le nom de l’auteur et la date seulement dans les commentaires sous la page single.php,j’aimerai que les gens doivent cliquer dessus pour lire le commentaire.
    En gros j’aimerai un système « plié » que les visiteurs pourraient « déplier » à leurs convenances.
    Merci

  • Bonjour Francis,

    Merci pour ces tutoriels passionnants et pour la somme d’effort et de pédagogie déployée à leur réalisation.

    Je souhaiterais que mes commentaires apparaissent non pas en bas de chaque article mais sur une nouvelle fenêtre ?
    Est-ce possible, et si oui comment?

    Codialement,

    Xavier

  • Salut, je vais écrire quelque chose ici concernant la leçon #15, comme au 15 les comm sont clos. C’est juste le problème que les autres ont eu avec le fichier archive.php.

    Elle ne remplace pas l’index.php, donc j’ai toujours les articles en entier. Et si je met « the_excerpt » dans index.php, mes articles sont écourtés. Mais seulement là, ce n’est pas archive.php qui est affiché, mais bien index.php avec « the_excerpt » a la place de « the_content ».

    Donc j’ai quand même continué le tuto. et à la fin, j’ai téléchargé le fichier de votre thème, j’ai ouvert vos fichiers index.php et archive.php, ils sont identiques aux miens. Mais j’ai néanmoins copier votre code et je l’ai mis à la place du mien dans archive.php et je fais de meme avec index.php, mais là, j’ai le meme problème.

    Ma question: pensez-vous que le problème peut venir de la configuration de mon WordPress?
    Je travaille sous local, et c’est la toute dernière version de Wp.

    Merci et surtout votre tuto est superbement bien expliqué…

  • Salla > Remplacer votre thème par le mien pour voir s’il y a toujours l’erreur, pas juste le contenu des fichiers index et archives, et dîtes moi su le souci est toujours là ! 😉

  • A Francis>
    Je viens de faire comme vous m’avez demander, c’est à dire j’ai remplacer votre thème au mien, j’ai à 100% le même problème, c’est-à dire, les articles à l’index sont en entier.

    Alors pour vous montrer le resultat, je l’ai installé sur mon serveur à l’adresse:
    http://www.sallartiste.com/connect.rdc/ .Vous pouvez aller voir le résultat.
    ça donne la même chose. Profitez en passant, de lire l’article du haut, il vous est destiné. lool.

    Pouvez vous savoir pourquoi ce problème? J’ai utilisé votre theme comme vous pouvez le voir.
    Merci

  • salla

    Salut Francis…
    Je vous écris le commentaire qui est ci-dessus, mais je n’ai toujours pas de réponse, et je suis toujours bloqué au même problème, En effet, j’ai fini mon thème, seulement le problème de texte en entier sur la page d’accueil subsiste, comme vous pouvez le voir sur cette adresse:
    http://www.sallartiste.com/connect.rdc/, j’ai utilisé votre thème, mais c’est le même problème. Pouvez-vous me donner des piste de solutions?
    Merci

  • Je continue ! C’est toujours aussi clair et limpide ! Je comprends de mieux en mieux comment est construit un thème WP ! Je m’étais amusée à en modifier certains, mais complètement au hasard.

  • Bonjour Francis,

    Je suis plongé dans le fichier comments.php « Créer son propre thème » de l’ouvrage WORDPRESS- Le Campus- éd.2009.

    Dans le fichier comments.php du CD, il y a (ligne 6) : « cet article est protégé par un mot de passe. Entrez ce mot de passe pour lire les commentaires. »

    Ce qui s’affiche sur le blog, à côté du titre de l’article, est : « Saisissez votre mot de passe pour accéder aux commentaires. » et, en dessous et avec des caractères différents : « Cet article est protégé par un mot de passe.Pour le lire, veuillez saisir votre mot de passe ci-dessous ».

    Comment expliquer ce tour de passe passe ?

  • Olivier > Effectivement, c’est étrange… Je vais regarder ça de plus près…

  • bonjour,

    je rencontre le problème suivant:

    lorsque je poste un commentaire je tombe sur une page blanche ?

    auriez vous une idée d’ou se trouve le probleme ?

    merci pour votre aide !

    ++
    Billboc

  • billboc

    au fait c’est en WP3 que ça ne fonctionne pas….

  • billboc

    j’ai une erreur en WP2.9.2 quand je clique sur envoyer (un commentaire)

    Warning: Cannot modify header information – headers already sent by (output started at /Applications/MAMP/htdocs/www/wordpress/wp-content/themes/Creation Theme/functions.php:15) in /Applications/MAMP/htdocs/www/wordpress/wp-includes/pluggable.php on line 868

    en wp3 (en local)
    message d’erreur qui me dit post a comment (???)

    que me conseillez vous ?

  • C’est un problème dû aux plugins… Il y a des plugins d’installés sur ton blog ?

  • oui pour les pluggins !
    je vais tout effacer et tout reprendre à zero !
    à suivre…

    merci pour la réponse !

  • billboc

    bon j’ai du me planter car une clean install ne résout pas le problème
    mon code ne doit pas être net…

  • J’ai une question en ce qui concerne l’envoi de formulaire de commentaire. Lorsque l’on soumet le formulaire sans aucune donnée, le script « wp-comments-post.php » effectue le traitement qu’il faut et si les champs obligatoires ne sont pas renseignés, il nous affiche un message d’erreur. L’inconvénient est que ce n’est pas très pratique pour un visiteur (pas de lien ni de bouton permettant de revenir en arrière…). Je souhaiterai savoir comment faire pour afficher les messages d’erreurs sur la page courante proprement (sans avoir besoin de toucher au code source de wordpress). J’ai déjà des solutions mais je ne pense pas que ces dernières soient pertinentes.

  • Salut!
    J’ai utilisé ton tuto plusieurs fois et ça a toujours bien fonctionné. Mais la j’ai un problème que je ne comprends pas: Les comms n’apparaissent que si je mets le widget commentaires récents et lorsque que je choisi de limiter le nb de réponse il devient impossible de trouver les autres commentaires. Si j’enlève le widget on ne peut plus rien voir du tout.
    Pourrais-tu m’aider?

  • Bonjour,

    Pour répondre à Billboc, je pense que ton problème vient d’un probleme d’encodage.
    Essaie d’editer ton fichier avec ton editeur favoris et de l’enregistrer sous un format ISO 8859-15 ou autre et non pas UTF l’erreur viens apparement du fait qu’il y a des caractères (windows) non reconnu.

    Sinon j’ai un probleme d’envoi des commentaires.
    Au moment où j’appui sur le bouton pour poster il me renvoi sur une page blanche, si quelqun aurait une piste.(ah oui j’ai copie collé le code du Tutorial #16: Insertion des commentaires).

  • Bonjour à vous!

    Merci pour ce tutoriel ô combien intéressant et bien expliqué !!

    Je post car j’ai rencontré un problème en suivant à la lettre le tuto. Le problème arrive au moment où on essai de poster notre premier commentaire : c’est à dire à la fin de cette page. J’ai ce genre d’erreur (avec l’ajout quand même du commentaire dans la base) :

    Cannot modify header information – headers already sent by (output started at […] functions.php:4) wp-comments-post.php on line 95

    Après quelques recherches, j’ai pu voir que ce genre de problème vient souvent d’espaces en trop dans le code … j’ai vérifié le miens et j’ai rien trouvé.

    J’ai donc continué à chercher et voyant que le fichier functions.php était potentiellement en cause j’ai cherché un autre modèle de fichier « type » et là bingo ! Je pense que c’est lié à l’utilisation des widgets en amont … pour info j’ai WP 3.0.1.

    Voilà le fichier functions.php qui fonctionne bien ::

     »,
    ‘after_widget’ =>  »,
    ‘before_title’ =>  »,
    ‘after_title’ =>  »,
    ));

    ?>

  • c’est pas bien passé le commentaire …

    je ressai de coller le fichier (enlever les etoiles dans les balises php) :

     »,
    ‘after_widget’ =>  »,
    ‘before_title’ =>  »,
    ‘after_title’ =>  »,
    ));

    ?*>

  • Bon vraiment désolé pour le spam mais je ne prviens pas à poster et je tiens à partager cette info … je ressai …

    ********************************* functions.php

    DEBUT BALISE PHP
    /**
    * @package WordPress
    * @subpackage Hello_D
    */

    if ( function_exists(‘register_sidebar’) )
    register_sidebar(array(
    ‘before_widget’ =>  »,
    ‘after_widget’ =>  »,
    ‘before_title’ =>  »,
    ‘after_title’ =>  »,
    ));

    FIN BALISE PHP

  • Matthieu

    hello !
    la création de mon template avance bien. j’ai juste un petit soucis avec :

    je n’ai pas seulement quelques lignes qui apparaissent mais bien tout le contenu des articles.
    je ne vois pas pourquoi ?

    merci de votre aide !

  • Sur la page d’accueil et sur les archives ?

    Dans ce cas-là, il faut remplacer the_content par the_excerpt ! 😉

  • Manon

    Bonjour ! Merci pour ce super tutoriel grâce auquel j’ai enfin pu me lancer dans l’aventure WordPress…
    Néanmoins je rencontre quelques difficultés :
    – Mon premier titre d’article n’est jamais en lien. Mais si je crée un nouvel article, en se décalant, c’est toujours le premier article qui n’est pas en lien… Et je n’arrive pas à savoir pourquoi !
    – J’ai créé les fichiers .php archives, single, page etc, mais quand je clique sur par exemple la page archive : error 404, idem pour les commentaires, idem pour les articles d’ailleurs, pourtant la search.php s’ouvre bien quand je tape une recherche, avec les articles en extrait et pas en entier… Je ne sais pas non plus pourquoi, j’avoue que je comprend à peine le php alors j’ai beaucoup de mal…

    Merci d’avance pour vos réponses !

  • bmaverick

    Super! Merci pour ce tutoriel tres utile.
    Si vous cherchez des themes pour vos sites WordPress, je vous conseille cet excellent site

    Bonne chance 😉

  • john

    comment mettre le suivi des commentaire

  • LECA

    Bonjour,

    J’ai suivi à la lettre tous les tutoriels depuis le début sans aucun soucis mais là çà coince !

    Je n’ai aucune rubrique commentaire qui apparaît et impossible de trouver la solution…Même quand je télécharge tous les fichiers du tuto23 et que j’active le thème, je n’ai aucun moyen de publier de commentaires !!!

    Quelqu’un peut-il m’aider ?

    Claire

  • Joris

    Je suis tes tutos depuis le début, merci énormément, c’est bien expliqué, le code est super propre, ça permet vraiment de partir sur une base saine plutôt que de modifier un template déjà fait à l’arrache. :p

  • LECA > Est-ce que les commentaires sont activés dans les réglages de WP ?

  • Constance

    Bonjour,

    J’ai suivi votre tutoriel depuis le début et pour le moment tout à toujours fonctionné parfaitement ! (et tout est très clair, bravo !) mais aujourd’hui j’ai un petit problème. J’ai bien crée ma page « comments.php » ou j’ai collé le contenu du document et j’ai aussi bien édité ma page « single.php » en ajoutant la ligne de code pour que les commentaires s’affichent (que j’ai bien placé avant la balise endwhile). Mais quand je fais un refresh, les commentaires n’apparaissent pas dans mes Pages ! (les commentaires sont bien activés, je pense, puisque je peux en laisser sur mes articles à partir de la Home Page.)

    Comment faire ? Je ne comprend pas !
    Merci milles fois pour votre merveilleux tutoriel,
    C.

  • Constance

    Olalala. Je viens de me rendre compte de mon erreur, on a supprimé les commentaires pour les pages fixes, là on veux seulement les rajouter pour qu’ils soient visibles lorsque l’on visualise un article seul… j’ai tout confondu, pardon, tout fonctionne 🙂

  • Valérie

    Juste une petite question de français…
    Le terme « Déconnection » n’existe pas, c’est plutôt « Déconnexion ». On peut le changer dans le document de comments.php où c’est écrit: « Déconnection &raquo », on change pour « Déconnexion &raquo ». Voilà 🙂

  • Hey !
    J’ai voulu utiliser ce code, pour remplacer le mien… Etant donné que si quelqu’un veut poster un commentaire, ça ramait, et ça allait jamais à la page qui indique que le message et posté !

    La c’est pire, il m’affiche si je poste un commentaire « Inpossible d’afficher la page »

    J’avoue que j’y comprends plus rien …

  • Guillaume

    Ce tutoriel en 23 parties est un vrai régale, Merci beaucoup ! Tout y est clairement expliqué, et à la porté d’un grand nombre de personne. Franchement, bravo ! grâce à vous j’ai pu éclaircir mes zones d’ombres sur WordPress. Ce qui me plait le plus c’est de comprendre comment tout cela fonctionne, et ensuite de pouvoir personnaliser notre propre thème grâce à toutes ces explications. J’aurais juste une chose à ajouter (peut-être inutile pour certains) c’est le fait de pouvoir insérer les commentaires dans une page. J’ai remarqué dans le back-office des pages, que l’on pouvait cocher ou décocher « autoriser les commentaires », mais cela ne fonctionnait pas. Il suffit simplement d’importer la page comment.php dans page.php . Après il ne reste plus qu’à cocher ou décocher cette option. ça peut servir pour certains, qui serait intéressé comme moi par un « livre d’or » sans passer par un article. J’ai trouvé cette explication nulle part, mais excusez-moi si cela a déjà été dit).

    Voilà, 🙂 heureux d’avoir découvert ce site !

  • Many wordpress designs sacrifice dependable signal as being a design and style trade-off. Search engines like google evaluate the particular web coding that makes way up an online site to determine just what the web page is about.wordpress

  • With regards to cars, I actually have come across a large selection of resources for help and advice that it is consuming sometimes. But I truly do value the article above.car canopy

  • Lucien

    Merci 🙂

  • Bonjour, j’aime beaucoup le design de ce site. Utilise-t-on du css avec WordPress?

    Merci et bonne continuation.

  • Meci pour ce tuto

  • vero rivera

    Bonjour et merci pour ce tuto fabuleux.
    Je fait des sites statiques et j’ai besoin de WP … C’est dur de s’y retrouver avec tous ces thèmes usines à gaz à paramétrer!!!

    Comment fait on pour insérer un ou des menus dans ce thème. Lorsque je vais dans menus on me dit : « Le thème actuellement utilisé ne peut pas utiliser les menus nativement, mais vous pouvez utiliser le widget “Menu de Navigation” pour ajouter n’importe quel menu créé ici à la barre latérale du thème. »
    Je souhaiterai un menu en haut dans le header ou sous le header.
    Et aussi comment insérer breadcrumbs?

    Merci

  • dur dur le code

    Bonjour et merci pour toutes ces merveilleux renseignements !
    Voilà j’ai un soucis, j’aimerais pourvoir afficher mes commentaires quand on clique sur les articles mis en archive.
    Dans archive.php j’ai : «  »
    ce qui m’affiche une liste avec X commentaires à lire mais j’aimerais que l’on ne soit pas obligé de cliquer sur le texte pour lire ou écrire un commentaire

    En fait, j’aimerais que cela soit comme dans la présentations des pages et articles avec la fonction «  » celle qui permet d’afficher directement les commentaires à la fin des articles

    Dans archive.ph, j’ai essayé de remplacer le code «  » par «  » mais cela ne fonctionne pas !!
    il faut dire que je suis à moitié douée en php , je tâtonne, SVP quelqu’un aurait-il une petite solution ou ce n’est pas possible et je perds mon énergie pour rien!!

    merci beaucoup pour vos réponses

  • Lili

    Salut tout le monde,
    Tout d’abord merci pour tous les tutos, les autres sont soit en anglais soit incomplet.

    Néanmoins j’ai un petit soucis que certaines autres personnes rencontrent aussi :
    J’ai créé mon fichier archive.php, y ai copié le contenu d’index.php et remplacé « content » par « excerpt ». Malheureusement rien ne change lorsque j’affiche ma page principal (en remplaçant dans index.php les posts sont bien raccourcis pourtant).
    La je bute un peu j’ai tout revérifié une dizaine de fois, je ne vois pas d’ou peu venir le problème.

    Si quelqu’un à une idée.

    Merci pour vos réponses.

  • Lili

    Oubliez j’ai trouvé,

    archive.php
    The archive template. Used when a category, author, or date is queried. Note that this template will be overridden by category.php, author.php, and date.php for their respective query types.
    Source : http://codex.wordpress.org/The....._API_Hooks

    Donc voila ca ne marche que l’orsque l’on clique sur un tag, une date, un auteur et ou une catégorie.

  • darknote

    comment-form c’est bien mais si on veut supprimer un champ, une ligne comme celle qui parle que l’on peut utiliser les balises ou rajouter un champ pour twitterlink-comment, comment on fait?

  • c’est moi où le fichier comments.txt n’a pas dans son code l’affichage des gravatars ?

  • Merci pour ce tuto. Il m’a permis de pouvoir mettre des commentaires sur mes pages. Heureusement qu’il y a des personnes qui livrent ce type de ressources, cela permet à des gens comme moi, pas programmeur mais voulant bloguer de s’en sortir.

  • Pierre

    Bonjour, j’ai un petit soucis lorsque j’intègre le code pour les commentaires dans le fichier single.php. Avant le “php endwhile”, et après le “php the_content” j’ai déjà 2 «  » qui se baladent..

    Lorsque je clique sur l’article pour le lire en entier, je tombe sur une page où ne s’affichent que les commentaires..

    Après plusieurs essais à différents endroits, je tombe tout le temps sur ce problème dès que je copie/colle la ligne

Success, your comment is awaiting moderation.