Désactiver les commentaires sur les fichiers joints dans WordPress

closeCet article a été publié il y a 4 ans 8 mois 24 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.

Récemment, j’ai commencé à subir une vague de spam sur la page « attachment » d’une image d’illusatration d’article liée à editorconfig. Bizarrement je n’ai pas les options pour désactiver les commentaires sur cette page, du coup je dois la jouer autrement.

Je vous laisse juger aux notifications mail :

Il n’y a pas de réglages spécifiques pour les commentaires sur les fichiers joints, il faut donc procéder de manière un peu détournée et pour ça on va faire appel à deux éléments de WordPress différents.

La force des thèmes enfants

La mise en place d’un thème enfant devrait être une obligation dès que vous voulez utiliser un thème communautaire. C’est ce que j’ai fait sur ce blog dès le premier ravalement, et je ne regrette absolument pas.

Dans un thème enfant on définit notamment un fichier principal functions.php qui va contenir toutes nos directives maisons. Au fil du temps j’y ai inclus pas mal de choses, suppression des query string, masquage des détails de login, et autres petits raffinements. À noter que comme n’importe quel fichier php, rien ne vous empêche de mettre vos codes maison dans un fichier à part et de procéder à une inclusion dans functions.php ensuite, si vous multipliez les éléments maison pour la lisibilité c’est peut-être mieux.

On va donc ajouter une fonction de plus :

Cette fonction ajoute une vérification lors de l’ajout d’un commentaire, si on est sur un type attachment on renvoie une erreur sans traiter le commentaire.

La base de données pour nettoyer les contenus existants

J’ai déjà eu à jouer avec par le passé pour désactiver les pings, et il me semble que ça avait fait l’objet d’une astuce diverse. L’idée est donc de modifier massivement les attachments pour désactiver les commentaires manuellement :

C’est aussi simple que ça. Évidemment disclaimer faites une sauvegarde avant toussa…

D’autres pistes ?

La seule autre solution que j’ai pu lire consistait à désactiver tous les commentaires. Sauf que vous le savez, j’aime justement vos retours sur les bêtises que je peux raconter, du coup, je les laisse activé. Cette fonction supplémentaire ne coûte pratiquement rien en ressources, donc on va pas s’en plaindre. Sinon en analysant les logs j’ai découvert que les POST étaient fait en HTTP 1.0. Je pourrais éventuellement désactiver le protocole si je vois qu’il ne sert à rien d’autre que ça 🙂

1 Commentaire
Le plus ancien
Le plus récent
Commentaires en ligne
Afficher tous les commentaires
DarkRedman
20/10/2019 08:42

C’est curieux car à l’époque où j’utilise WordPress (jusqu’à 2014) il y avait déjà la possibilité de désactiver les commentaires dans l’interface d’administration sur les pièces-jointes. Du coup je suis surpris que ce n’est pas déjà le cas sur ton instance WordPress.