Comment déplacer un commentaire sur WordPress ?


On a parfois besoin de déplacer un commentaire sur WordPress (ou plusieurs) entre deux articles.

  • Un visiteur a posté son commentaire au mauvais endroit.
  • Vous divisez un article en deux (ou fusionnez deux articles) et vous souhaitez séparer/réunir les commentaires.
  • Vous déplacez des articles sur un autre blog et vous voulez déplacer les commentaires associés.

Dans cet article, je vais vous apprendre à déplacer un commentaire sur WordPress. Il s'agit d'un tutoriel qui exige une bonne aisance technique et pour le suivre, mieux vaut avoir quelques connaissances de base dans la gestion d'une base de données.

Je vous conseille quoi qu'il arrive de sauvegarder votre base de données avant d'y faire des manipulations, afin d'éviter toute conséquence sérieuse sur votre blog en cas d'erreur.

Déplacer des commentaires sur WordPress

Avant de vous lancer dans une procédure riche en manipulation, vous pouvez tenter de déplacer vos commentaires à l'aide du plugin WordPress Copy or Move Comments. Si celui-ci ne fonctionne pas bien sur votre blog, je vous propose une méthodologie un peu plus technique mais efficace ci-après !

Identifier les commentaires à déplacer

Pour commencer, vous allez devoir noter sur quel article se trouvent les commentaires à transférer… et surtout, quel est l'identifiant de l'article en question (ou des articles en question s'il y en a plusieurs).

Récupérer l'identifiant de l'article concerné

Pour connaître l'identifiant de l'article, il suffit d'aller dans la rubrique "Articles" de votre administration WordPress et de survoler le titre de votre article avec la souris. En bas de votre navigateur, vous verrez apparaître l'adresse de l'article : elle comporte un nombre sous la forme post.php?post=XXXX, le XXXX correspondant à l'identifiant. Par exemple, l'identifiant de mon article sur le Jardin Exotique d'Eze Village est ici 1341.

Connaître l'identifiant d'un post WordPress
Connaître l'identifiant d'un post WordPress

Si vous avez beaucoup d'articles concernés par un déplacement de commentaires, vous pouvez tout à fait créer un tableau Excel avec le nom de chaque article, son identifiant, le nombre de commentaires qu'il comporte et l'identifiant du nouvel article qui devra afficher les commentaires après déplacement. Ça vous fera gagner beaucoup de temps.

Une fois que vous avez récupéré l'identifiant (1341 dans mon exemple), vous pouvez passer à l'étape suivante.

Afficher les commentaires à déplacer

Connectez-vous à la base de données du blog sur lequel se trouvent les commentaires que vous souhaitez déplacer. Les commentaires sont stockés dans une table intitulée wp_comments. Le préfixe peut être différent si vous l'avez personnalisé lors de l'installation de WordPress. Nous devons retrouver les commentaires à transférer, ceux de l'article 1341 dans mon exemple.

Dans la table wp_comments, il existe une colonne intitulée comment_post_ID, qui permet à chaque commentaire d'être rattaché à l'identifiant d'un article précis (et donc de s'afficher sur cet article). Autrement dit, les commentaires postés sur mon article concernant Eze Village sont tous rattachés au comment_post_ID 1341.

Nous allons donc afficher uniquement les commentaires correspondant à ce comment_post_ID. Pour ce faire, allez dans le menu SQL en haut de la page et tapez l'instruction suivante :

SELECT * FROM `wp_comments` WHERE comment_post_ID LIKE 1341

Bien sûr, pensez à remplacer l'identifiant 1341 par l'identifiant de votre propre article. Si vous avez modifié le préfixe de vos tables, remplacez wp par votre préfixe. Cliquez ensuite sur le bouton "Exécuter".

Afficher les commentaires d'un post précis sur WordPress
Afficher les commentaires d'un post précis sur WordPress

Vous obtenez la liste des commentaires associés à l'article qui vous intéresse.

Ensuite, il y a deux options :

  • Soit vous avez peu de commentaires à déplacer, auquel cas vous pouvez suivre la partie de mon tuto intitulée "Option #1".
  • Soit vous avez un grand nombre de commentaires à déplacer, auquel cas il faut lire la partie intitulée "Option #2".

Option #1 - Déplacer un petit nombre de commentaires

Si vous n'avez que quelques commentaires à déplacer, vous pouvez le faire à la main. Cliquez simplement sur l'identifiant de l'article dans la colonne comment_post_ID. Il va alors s'afficher sous forme de champ modifiable, comme ceci :

Modifier le Comment Post ID
Modifier le Comment Post ID

Vous avez juste à indiquer l'identifiant de l'article sur lequel vous devez déplacer le commentaire, puis cliquer sur "Entrée" pour valider. En faisant ça pour chaque commentaire à déplacer, vous modifiez en quelque sorte son "affectation". Le commentaire n'est plus affecté à l'article n°1351 mais au nouvel article que vous avez choisi.

Option #2 - Déplacer un grand nombre de commentaires

Si vous avez beaucoup de commentaires à déplacer, tout faire à la main commentaire par commentaire se révélerait très long et fastidieux. On va donc avoir recours à une autre méthode.

Sauvegarder les commentaires existants sur l'article

Une fois que vous avez affiché la liste des commentaires à déplacer grâce à la première étape du tutoriel, cochez les commentaires que vous souhaitez transférer ou la case "Tout cocher" pour tous les sélectionner (cf flèches ci-dessous). Cliquez ensuite sur le bouton "Exporter". Laissez les options par défaut et cliquez sur "Exécuter" pour télécharger un fichier contenant les commentaires.

Cocher les commentaires dans la base de données
Cocher les commentaires dans la base de données

Préparer le déplacement d'un commentaire

Vous allez devoir modifier le fichier que vous avez téléchargé pour pouvoir transférer les commentaires au bon endroit.

Pour commencer et dans un souci de lisibilité, nous allons seulement garder la partie du fichier qui commence par INSERT INTO. Ça se présente comme ceci :

La partie Insert Into du fichier
La partie Insert Into du fichier

Il y a plusieurs modifications à apporter à ce fichier selon votre situation.

Le préfixe de table

Si vous déplacez les commentaires sur un autre blog qui n'utilise pas le même préfixe de table, vous allez commencer par modifier le fichier en indiquant le bon préfixe. À la place de wp_comments, indiquez le bon préfixe, par exemple s8_comments.

Le numéro du commentaire

De la même manière que les articles possèdent un identifiant unique, chaque commentaire est lui aussi identifié par un nombre unique, qui figure au début de la ligne correspondant à chaque commentaire. Dans mon exemple, on a ainsi les commentaires n°15618 et n°15620. Si vous déplacez les commentaires sur un autre blog, il se peut que ce chiffre ne soit pas disponible et qu'il soit déjà utilisé par un commentaire existant.

Dans ce cas, connectez-vous à la base de données du nouveau blog où vous voulez transférer les commentaires et allez voir dans la table wp_comments à quel numéro les commentaires en sont rendus. Il faut simplement cliquer sur le titre de la colonne intitulé "comment_ID" pour classer des commentaires en fonction de leur identifiant :

Trier les commentaires par comment_ID
Trier les commentaires par comment_ID

Cliquez deux fois pour les classer du plus élevé au plus faible. Par exemple, ici, le dernier commentaire en date porte le numéro 7913. Ça signifie que si je veux insérer sur ce blog de nouveaux commentaires, je peux leur donner l'identifiant 7914 et les suivants.

Dans notre fichier, nous allons donc renuméroter les commentaires en fonction de cette information :

Renumérotation des commentaires
Renumérotation des commentaires

L'identifiant de l'article

Jusqu'à présent, le commentaire était rattaché à un article précis, l'article 1341 dans mon exemple. Si je veux les transférer sur un autre article, il aura un identifiant différent. Il faut donc remplacer le chiffre 1341 par le nouvel identifiant, celui de l'article où vous allez copier les commentaires.

La logique des questions et des réponses aux commentaires

À la fin de chaque paragraphe correspondant à un commentaire, vous avez deux chiffres.

  • Le premier indique si le commentaire est une réponse à un autre commentaire ou pas - S'il s'agit d'un simple commentaire, le chiffre 0 est affiché. S'il s'agit d'une réponse à un autre commentaire, c'est l'identifiant de ce commentaire qui est affiché.
  • Le deuxième chiffre correspond à l'identifiant de la personne qui poste - Si c'est un invité (un simple visiteur) du blog, ce chiffre est "0". Si c'est un membre inscrit, un administrateur, ce sera un autre chiffre.

Dans mon exemple, si vous regardez le commentaire de "Fanfan", vous voyez qu'il se termine par les chiffres 0, 0 avant la parenthèse. Fanfan est une "simple visiteuse" et son commentaire ne répond à aucun autre commentaire. A l'inverse, si vous regardez mon commentaire, il se termine par les chiffres 15618, 4. Autrement dit, il répond au commentaire n°15618 (celui de Fanfan)... et je porte l'identifiant 4 sur WordPress.

Commentaire parent sur WordPress
Commentaire parent sur WordPress

Que faut-il modifier ici ?

  • Si vous avez renuméroté les commentaires, il faut en tenir compte : dans mon exemple, le commentaire de Fanfan, le n°15618, est devenu le commentaire n°7914. Il faut donc que je modifie la fin de la ligne qui me concerne... pour indiquer que ma réponse s'adresse au commentaire n°7914. Comme ceci :
    Modifier la logique des réponses aux commentaires
    Modifier la logique des réponses aux commentaires
  • Si vous déplacer un commentaire d'un blog vers un autre, l'identifiant de la personne qui répond peut changer, il faut aussi penser à le modifier si nécessaire. Par exemple, je peux avoir l'identifiant n°4 sur un blog parce qu'il y a 3 autres comptes... et l'identifiant n°1 sur un autre blog car je n'ai créé qu'un seul compte dessus.

Si vous le souhaitez, vous pouvez aussi en profiter pour modifier votre nom tel qu'il apparaît en signature du commentaire. Dans mon exemple, je m'appelle "Marlène | No Tuxedo" quand je réponds à un commentaire... mais si je transfère les commentaires sur un autre blog, j'utiliserai le nom de l'autre blog.

À ce stade, notre fichier est fin prêt. Les commentaires vont pouvoir être postés dans la bonne table, sur le bon article, avec la même logique de questions et de réponses que dans le post d'origine et en identifiant correctement les auteurs comme invités ou comme membres du site. Vous pouvez donc enregistrer le fichier !

Déplacer le commentaire vers sa nouvelle adresse

Ensuite, connectez-vous à la base de données du blog où vous devez transférer les commentaires et importez ce fichier.

Vous pouvez le faire soit par le biais du menu Importer en haut de page soit en copiant-collant le contenu du fichier via le menu SQL en haut de page. Si le transfert se passe bien, vous verrez un message sur fond vert tandis que s'il se passe mal, vous verrez un message sur fond rouge. Ce message vous expliquera la cause de l'erreur. Il peut s'agir d'une ponctuation manquante, d'une erreur sur un identifiant, etc.

Déplacer un commentaire, c'est fait !
Déplacer un commentaire, c'est fait !

Normalement, en allant sur l'article de destination, vous devriez maintenant voir apparaître les commentaires que vous avez transférés. Il nous reste cependant une dernière erreur à corriger. WordPress affiche toujours un total de 0 commentaire sur l'article bien que le transfert ait été réalisé correctement.

Problème sur le nombre de commentaires
Problème sur le nombre de commentaires

Pour que l'article affiche le bon nombre de commentaires, allez dans la table wp_posts du blog où vous avez transféré les commentaires. Dans le menu SQL en haut de page, entrez la requête ci-dessous. Remplacez le préfixe "wp_" par le vôtre si vous l'avez modifié et remplacez l'identifiant (ici 58) par l'identifiant de l'article où vous avez transféré les commentaires.

SELECT * FROM `wp_posts` WHERE `ID` LIKE 58

Cette requête va vous afficher l'article où vous avez transféré les commentaires. Repérez la colonne située la plus à droite, qui s'intitule comment_count. Actuellement, elle affiche le chiffre 0 car l'article ne sait pas combien il a de commentaires. Double-cliquez sur ce chiffre et remplacez-le par le nombre de commentaires exact (2 dans mon exemple) puis cliquez en dehors de la case pour sauvegarder l'information.

Si vous revenez maintenant sur votre article et que vous actualisez la page, vous allez voir que le compteur s'est mis à jour avec le nombre exact de commentaires.

Bon nombre de commentaires
Le compte est bon !

Voilà pour ce tutoriel. Comment souvent, c'est la "première fois" qui va vous demander le plus d'énergie car il faut mémoriser les étapes et veiller à ne pas faire d'erreur. Une fois que vous l'aurez fait deux ou trois fois, ça ne vous semblera plus si compliqué !

La plupart du temps, la première méthode "à la main" suffit pour la gestion courante de son blog, quand on fusionne deux articles par exemple et que l'on veut transférer les commentaires de l'un à l'autre. La deuxième méthode, plus complexe, est surtout utile quand on déplace un volume important d'articles et de commentaires entre deux bases de données et que l'on veut bénéficier d'une gestion très fine des choses.

En effet, il existe sur WordPress un outil d'export performant (via le menu Outils > Exporter), qui peut vous permettre de déplacer des articles avec leurs commentaires, mais il n'est pas forcément adapté quand on a besoin d'un contrôle très fin sur ce qu'on déplace (ou pas).


Poster un commentaire

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

18 commentaires sur “Comment déplacer un commentaire sur WordPress ?
  • Sandrine Monllor (Fuchinran)

    Bonjour Marlène,
    grâce à toi j’avais trouvé une solution pour faire un déplacement d’un grand nombre de commentaires d’un article vers une nouvelle page. Mais malgré plusieurs lectures et essais à partir de ton article qui était pourtant celui qui m’avait permis de trouver le code, je n’y parviens plus. J’ai perdu ce code dans un formatage. Rien à faire pour le retrouver. Aurais-tu une idée de ce que je peux taper dans la commande ? Il y avait les deux articles à mentionner, l’ancien et le nouveau. Or dans tes propositions, il n’y en a qu’un. Et chaque essai aboutit à une erreur. Merci pour ton aide.

    Répondre à Sandrine
    • Marlène

      Bonjour, pour ma part quand je veux déplacer tous les commentaires d’un article vers un autre, j’écris :
      UPDATE wp_comments SET comment_post_ID=IDdedestination WHERE comment_post_ID=IDdorigine

      En remplaçant « IDdedestination » par l’identifiant de l’article vers lequel on déplace et « IDdorigine » par l’identifiant de l’article depuis lequel on déplace les commentaires. Et en modifiant le préfixe de table (wp_) si nécessaire, s’il a été personnalisé.

      Si le but est de ne pas déplacer tous les commentaires, la requête est différente bien sûr en fonction des critères de choix des commentaires à déplacer.

      Répondre à Marlène
    • Sandrine

      Bonjour Marlène,
      je viens d’essayer, mais à chaque fois j’ai le même message d’erreur
      Pourtant les numéros des articles sont les bons
      Erreur
      Requête SQL :

      UPDATE wp_comments SET comment_post_ID=329504 WHERE comment_post_ID=262224
      MySQL a répondu: Documentation

      #1146 – La table ‘voyages.wp_comments’ n’existe pas

      Je ne sais pas pourquoi ça ne marche plus, le code que j’utilisais et que j’ai perdu ne déclenchaient aucune erreur. Je ne comprends pas ce qui dysfonctionne? Merci pour ton aide.

      Répondre à Sandrine
    • Sandrine

      Désolée de t’avoir dérangé avant d’y penser, je l’ai fait alors que j’avais déjà envoyé le message : j’avais oublié de vérifier l’intitulé de mes tables, donc j’ai juste copié le message comme donné sans modifier avec le nom de mes tables. Merci pour ton aide. Ca m’est d’un grand secours vu ma refonte, j’ai des tas de commentaires à déplacer. Ca ne serait pas jouable manuellement.

      Répondre à Sandrine
    • Marlène

      Je ne sais pas si ton message veut dire que tu as trouvé la solution… mais ta table n’est-elle pas juste « voyages_comments » et pas « voyages.wp_comments » ? Car d’après le message d’erreur, le nom de table n’est pas bon.

      Répondre à Marlène
  • Renaud

    Bravo et merci de votre pédagogie minutieuse…
    A vrai dire (il y a quelques années) j’avais téléchargé un petit plugin qui faisait cela d’un clic et c’était bien pratique. J’ai cherché à le télécharger (je ne l’ai plus), je me souviens qu’il existe mais ne l’ai pas retrouvé…
    Vous ou vos correspondants ne le connaitraient-ils pas par hasard ?
    Merci.

    Répondre à Renaud
  • Les Gros Sacs

    Petit complément d’informations : tout fonctionne bien, en revanche le compteur de commentaires ne se met pas à jour. J’ai fait le transfert par exemple de 8 commentaires vers cet article qui en avait déjà 20 : https://lesgrossacs.com/myanmar-le-bilan-en-chiffres-et-en-lettres
    J’ai bien 28 commentaires mais le compteur est resté à 20.

    Répondre à Les
    • Marlène

      Hello, si ça ne se met pas à jour il faut le changer manuellement dans la table wp_posts : on commence par trouver le bon post en entrant cette requête :
      SELECT * FROM `wp_posts` WHERE `ID` = XXX

      XXX étant le numéro du post sur lequel tu as déplacé les commentaires. Ça t’affiche une seule ligne. Dans la dernière colonne, intitulée « comment_count », tu as juste à indiquer le bon chiffre ;)

      Répondre à Marlène
    • Les Gros Sacs

      Mes excuses, je n’avais pas été voir dans le pavé de la solution 2 :) Parfait ça fonctionne ! Merci Marlène :)

      Répondre à Les
  • Harvey

    Bonjour,
    Super tuto mais le nombre de commentaires dans le back reste à zéro alors qu’il est bon sur la page en question ?

    Répondre à Harvey
    • Marlène

      A quel endroit du back ? Car quand on modifie wp_posts, chez moi ça se met bien à jour partout (dans la colonne affichant le nombre de commentaires de l’article par exemple, dans le menu Commentaires)…

      Répondre à Marlène
  • Loïc

    Merci pour la ligne de code. Jusqu’à aujourd’hui je naviguais dans les tables à la recherche du commentaire et de l’identifiant de l’article (j’avais pas vu qu’il apparaissait au survol). Même si je déplace rarement les commentaires, ça reste quelque chose d’utile à savoir.

    Répondre à Loïc
    • Marlène

      Je le fais assez rarement aussi… et c’est pour ça que j’en ai profité pour créer un tuto car le jour où on en a besoin, ça évite de perdre du temps ;) En fait, je me rends compte que l’usage le plus fréquent que je fais de cette fonctionnalité, c’est quand je mets à jour intégralement un article : il m’arrive de rassembler deux articles en un seul et je « mutualise » les commentaires par la même occasion.

      Répondre à Marlène
  • Amandine / Drawings and things

    Faudrait que je me penche à ça, de temps en temps il m’arrive de réécrire des article donc je perds les anciens commentaires, mais ça me parait un peu compliqué pour moi.
    Déjà en voulant mettre analytics moi meme j’ai explosé mon design de blog… alors là j’ai trop peur de faire une boulette !

    Répondre à Amandine
    • Marlène

      Hello, en principe quand tu réécris un article tu ne devrais pas perdre les anciens commentaires (à moins de les supprimer manuellement), sauf si tu effectues ta réécriture dans un nouvel article. Auquel cas, c’est dommage car idéalement, il faut garder la même URL que l’ancienne version de l’article pour le référencement : ça te permet de conserver le trafic, les liens acquis par le « vieil article » même lorsqu’il est réécrit.

      Par exemple, j’ai récemment refait entièrement cet article sur Instagram, j’ai changé le contenu de A à Z mais les anciens commentaires sont restés à la même place… et si quelqu’un avait partagé le lien de l’ancien article, quand on clique dessus on tombe sur un contenu à jour :)

      Répondre à Marlène
    • Amandine / Drawings and things

      Ah mais j’y penserais la prochaine fois !
      C’est vrai que je devrais utiliser les anciens article directement pour les rééditer. Mais parfois, je trouve que mon SEO est tout pourri, donc je préfère recommencer à neuf.
      Mais ça sera une erreur pour moi à ne plus commettre !

      Répondre à Amandine
    • Marlène

      En fait, on ne réalise pas parfois qu’un article reçoit encore des liens… et que même s’il a peu de trafic, ça joue sur le site.

      Répondre à Marlène


Si vous aimez les articles du site, n'hésitez pas à faire vos achats sur Amazon.fr via ce lien ; il me permettra de toucher une commission grâce au programme Partenaires Amazon EU.