Désactiver les commentaires sur les pages / articles de WordPress par défaut

Mis à jour le :

De façon temporaire ou définitive, il existe de nombreuses raisons de vouloir fermer les commentaires sur l’ensemble d’un site WordPress.

Ce tutoriel vous apprendra comment les désactiver pour un ou plusieurs types de contenu et ce, sans recours à un plugin.

Dans un mu-plugins ou le fichier functions.php de votre thème, collez les lignes suivantes :

add_filter('comments_open', 'wpc_comments_closed', 10, 2);

function wpc_comments_closed( $open, $post_id ) {
$post = get_post( $post_id );
if ('post' == $post->post_type)
$open = false;
return $open;
}

A la ligne 5, spécifiez le type de contenu pour lequel vous souhaitez désactiver les commentaires : post pour les articles, page pour les pages classiques ou un custom post type.

Sauvegardez le tout puis vérifiez que les commentaires sont désormais clos.

Si vous préférez les désactiver sur l’ensemble de votre site, alors supprimez la ligne avec la condition signalée par le if.

Avatar de Aurélien Denis

Protégez votre site WordPress

Vos données sont précieuses,
ne prenez pas le risque de tout perdre.
Confiez-moi votre maintenance !

Ces articles devraient t’intéresser…

31 réponses
  1. Avatar de mouhamed
    mouhamed

    mercie pour votre aide javais le meme probleme avec les commentaire

  2. Avatar de forest
    forest

    Bonjour,

    j’ai pu désactiver les commentaires globalement en utilisant le plugin « disable comments de wordpress »

    https://wordpress.org/plugins/disable-comments/

    j’éspere que ça aide.

  3. Avatar de Fabien
    Fabien

    Mon erreur : Je mettais le bout de code dans le fichier functions.php ce qui faisait planter le site avec le message d’erreur cité plus haut.

    En fait il fallais le mettre dans le fichier functions.wp-scripts.php !!! et tout fonctionne niquel

    C’était assez bizarre que ça ne fonctionne pas car ce n’était pas la première fois que je venais sur votre site piquer ce bout de code qui avait toujours bien fonctionné… Visiblement avant il n’y avait qu’un seul fichier functions.php mais ce n’est plus le cas aujourd’hui…

    1. Avatar de Aurélien Denis
      Aurélien Denis

      En réalité, cela dépend directement de vote thème. Sinon, vous pouvez créer un mu-plugin.

  4. Avatar de Fabien
    Fabien

    bonjour
    j’ai une erreur qui me dit « Fatal error: Call to undefined function add_filter() in …/wp-includes/functions.php on line 27
    la ligne 27 étant « add_filter(‘comments_open’, ‘wpc_comments_closed’, 10, 2); »
    avez-vous une idée ?
    merci d’avance

    1. Avatar de Aurélien Denis
      Aurélien Denis

      La fonction wpc_comments_closed est absente visiblement. Avez-vous copié l’intégralité du code ? Merci d’utiliser un service comme pastebin pour partager votre code.

  5. Avatar de Florence
    Florence

    Hello !
    J’ ai copié ces lignes dans le fichier, mais j’ai eu un message d’erreur.
    Je les ai donc enlevées mais toujours un message d’erreur… Je n’arrive plus à accéder à l’interface de mon wordpress !

    Voici la petite phrase bien sympathique :

    Fatal error: Cannot redeclare url_is_accessable_via_ssl() (previously declared in /home/fleurdefp/www/wp-includes/functions.php:3013) in /home/fleurdefp/www/wp-includes/deprecated.php on line 3493

    Que dois-je faire ?
    Merci (:

    1. Avatar de Aurélien Denis
      Aurélien Denis

      Il doit manquer une accolade ou une virgule quelque part. L’erreur n’a rien à voir avec le tutoriel. Avez-vous modifié correctement le fichier avec un éditeur de code via un client FTP ?

  6. Avatar de fotsirhc
    fotsirhc

    Génial, merci pour ce code ! Pour moi ça désactive les fonctions et les intitulés « laisser un commentaire », c’est parfait, encore merci

  7. Avatar de Teddy Von Dutch Mazambi
    Teddy Von Dutch Mazambi

    Il ne faut pas être du genre ingrat. Je remercie quand j’ai trouvé une solution. Merci à l’auteur

  8. Avatar de Max
    Max

    Merci pour l’astuce bien pratique !
    C’est étonnant qu’une « option » de la sorte n’existe pas en natif sur WordPress…

    1. Avatar de Aurélien Denis
      Aurélien Denis

      Une telle option existe au niveau global mais uniquement pour les nouveaux contenus à paraître. Sinon, il faut éditer en masse… pas très pratique !

      1. Avatar de max
        max

        C’est une fois que l’on a décoché la case « autorisé les commentaires » dans le panneau discussion lors de la rédaction d’un nouvel article ?
        Ou il y a une option que j’aurais loupé quelque part… ?

      2. Avatar de benoitperche
        benoitperche

        Bonjour,
        Si on vise les articles uniquement on peut également ruser et se rendre dans le menu Réglages => Discussion et cocher la case « Fermer automatiquement les commentaires pour les articles vieux de plus de » en ayant pris soin préalablement de noter 1 jour dans le délai.

  9. Avatar de Aurélie
    Aurélie

    Merci, c’est top !

  10. Avatar de miasouki
    miasouki

    merci pour le tuto 😀

  11. Avatar de Caroline
    Caroline

    Oui j’ai installé jetpack mais je pense que je n’avais pas activé Askimet. Je viens de le faire mais cela ne supprime pas les commentaires existants. Pour les supprimer je passe par Commentaires / approuvés / j’en sélectionne (max 100 sinon ça bug), je supprime ou mets en indésirable…. Allez plus que 4142…
    Je suis preneuse d’une manip plus rapide (d’autant que j’ai beaucoup d’erreurs 404. Merci encore pour votre aide

    1. Avatar de Aurélien Denis
      Aurélien Denis

      Une fois Akismet activé, vous disposez d’une option Vérifier les commentaires indésirables dans l’onglet Commentaires de votre administration WordPress.

  12. Avatar de Caroline
    Caroline

    Bonjour et merci pour vos tutoriels qui aident bien 🙂
    Voilà, moi j’ai un souci sur l’affichage des commentaires de quelques articles de mon blog. J’avais laissé la possibilité de laisser des commentaires ouverte et j’ai eu plein de commentaires envoyés par des robots (presque 6000 au total). J’ai évidemment décoché l’option mais les commentaires anciens sont toujours affichés et je ne trouve pas comment les supprimer de l’affichage.
    Est-ce que vous auriez une idée ?
    merci pour votre aide

    1. Avatar de Aurélien Denis
      Aurélien Denis

      Avez-vous installé le plugin Akismet (gratuit pour une utilisation non commerciale) ? Ou tout autre module anti-spam ?

  13. Avatar de topweb
    topweb

    merci pour cette astuce, en effet même si wordpress est à la base un moteur de blog, cela ne l’empèche pas d’etre un bon CMS qui peut etre utilisé dans des sites qui ne demandent pas d’activer les commentaires

  14. Avatar de MetalZineur
    MetalZineur

    Belle démonstration mais il aurait été cool d’expliquer les raisons du « pourquoi » de cette désactivation.

    1. Avatar de Aurélien Denis
      Aurélien Denis

      Il existe des tas de raisons comme le besoin de bloquer un bad buzz.

  15. Avatar de Cristophe
    Cristophe

    Ça désactive les commentaires mais est-ce que ça ôte également de l’affichage les mentions « Ajouter un commentaire » ou « Aucun commentaire », voire ?

    1. Avatar de Aurélien Denis
      Aurélien Denis

      Non pour ce faire, il faut modifier le thème via un child theme par exemple.

      1. Avatar de Marinette Jullien
        Marinette Jullien

        Bonjour, existe-t-il un tuto pour cela ?
        –> désactiver les commentaires + ôter de l’affichage tout ce qui a rapport aux commentaires ?
        Merci beaucoup pour ce travail en tout cas !

        1. Avatar de Aurélien Denis
          Aurélien Denis

          Hum pour cela il faudrait éditer le thème… donc pas vraiment de solution universelle.

  16. Avatar de Julio Potier
    Julio Potier

    Hello
    C’est pas « false » mais « closed » (ou « open »).
    Bisous

    1. Avatar de Aurélien Denis
      Aurélien Denis

      Comment ça ? Je ne comprends pas mon erreur cher collègue ? Tu me fais un pastebin stp car ici le code est fonctionnel.

      1. Avatar de Julio Potier
        Julio Potier

        Mea culpa, j’ai confondu avec comment_status, j’ai parlé trop vite !

    2. Avatar de Julien Maury Ⓦ (@TweetPressFr)
      Julien Maury Ⓦ (@TweetPressFr)