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

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

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.

Par Aurélien Denis

Consultant & Développeur WordPress / WooCommerce. Un site à créer, à maintenir ou à débuguer ? Contactez-moi.

31 commentaires
  1. mouhamed

    mercie pour votre aide javais le meme probleme avec les commentaire

  2. 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. Aurélien Denis auteur de l’article

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

  3. 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. Aurélien Denis auteur de l’article

      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.

  4. 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. Aurélien Denis auteur de l’article

      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 ?

  5. 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

  6. Teddy Von Dutch Mazambi

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

  7. Max

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

    1. Aurélien Denis auteur de l’article

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

  8. Aurélie

    Merci, c’est top !

  9. miasouki

    merci pour le tuto 😀

  10. 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. Aurélien Denis auteur de l’article

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

  11. 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. Aurélien Denis auteur de l’article

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

  12. 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

  13. MetalZineur

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

    1. Aurélien Denis auteur de l’article

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

  14. 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. Aurélien Denis auteur de l’article

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

      1. 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. Aurélien Denis auteur de l’article

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

  15. Julio Potier

    Hello
    C’est pas “false” mais “closed” (ou “open”).
    Bisous

    1. Aurélien Denis auteur de l’article

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

      1. Julio Potier

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

Laisser un commentaire