WordPress : un plugin pour lister les posts avec des liens sortants

Résumer ce contenu avec votre LLM préféré !

Quand on fait de l’édition de sites et plus particulièrement de la vente de liens positionnés, l’identification des articles des sites support ayant des liens sortants est une nécessité. Le hic, c’est que lorsqu’on utilise (par exemple) certaines techniques d’obfuscation, l’usage d’un crawler devient (presque) nécessaire pour lister efficacement les posts de nos sites sous WordPress sur lesquels on peut encore éventuellement proposer un lien sortant à un futur client.

Las de devoir crawler régulièrement mes sites et de tenir de laborieuses listes, j’ai décidé de mettre à contribution ChatGPT pour m’aider à réaliser un plugin permettant de remplir cette fonction. Explications !

Mise à jour au 05/03/2025 : nouvelle version avec améliorations !

Le cahier des charges : identifier les liens (vraiment) sortants

Il suffisait de s’interroger sur les besoins essentiels d’un éditeur de sites pour établir les spécifications techniques de notre futur plugin. J’ai donc entrepris de lister simplement ce que je voulais obtenir :

  • Pouvoir identifier (dans la liste des posts du back-office WordPress) les articles ayant ou non des liens sortants
  • Ne pas identifier les liens obfusqués afin d’éviter les faux positifs (nécessité de devoir indiquer une classe CSS particulière pour filtrer les liens obfusqués en front)
  • Pouvoir simplement paramétrer le plugin via le back-office afin de définir l’éventuelle classe CSS à filtrer
  • Pouvoir exporter la liste des articles ayant des liens sortants

Partant de là, il m’aura fallu environ 5 minutes pour établir un prompt détaillé à ChatGPT (en mode GPT-4) et le laisser me faire une proposition de code : impressionnant !!!

L’interaction avec ChatGPT

Quand on utilise ce type d’outil génératif, la précision est de mise. Je vous partage donc mon prompt initial histoire d’éviter de faire de longs discours sur la façon d’appréhender ce genre de demande :

Développe moi un plugin WordPress complet permettant, pour l'ensemble des posts d'un site développé avec WordPress, d'indiquer dans une colonne complémentaire appelée "Liens externes", le nombre de liens sortants (hors du site) du post en question.  Le nombre de liens sortants doit être stocké dans un custom field rattaché aux posts. Il doit être remis à jour à chaque update de post, et précalculé lors de l'initialisation du plugin lors de sa première mise en place.  Le champs doit permettre de trier les posts selon le nombre de liens sortants.  Il faut également développer une page de réglages pour ce plugin, présente dans le menu "Réglages" de WordPress et appelé "Liens externes".  Dans cette page, on doit avoir deux onglets. Le premier onglet "Paramètres" doit permettre de spécifier une exception dans le décompte des liens ayant une classe CSS particulière, via un champs appelé "Exception (classe CSS de liens"). Tous les liens de cette classe CSS ne devront pas être comptabilisés comme liens sortants, même s'ils pointent vers d'autres sites. Par exemple, si on indique "obflnk" comme classe dans le champs d'exception, tous les liens ayant une classe CSS "obflnk" ne seront pas comptabilisés dans les liens sortants.  Un second onglet "Export" permet d'afficher un tableau HTML listant l'ensemble des pages comportant au moins un lien sortant qui n'ait pas la classe CSS faisant exception. Dans ce tableau, indique le post_id, le titre du post, l'URL du post et le nombre de liens sortants. Un bouton "Exporter la liste" doit permettre d'exporter la liste au format CSV.

En revenant sur ce prompt de taille, ma citation préférée me revient à l’esprit : « En poursuivant l’inaccessible, la simplicité se trouve en travers du chemin » (Alan Perlis)

En d’autres termes, un énoncé clair permet d’obtenir un résultat clair (vous remarquerez que la précision nécessaire de cette demande implique de connaître un minimum les mécanismes avancés de WordPress, puisque je lui parle de custom field, de CSS et d’autres concepts qu’un néophyte ne peut connaître)

La seule « limite » de ChatGPT est qu’il est limité en longueur dans ses réponses, et qu’il faut souvent lui demander de reprendre là où il en était. Comme il a bon goût de numéroter les étapes à suivre, il suffit donc de lui demander par exemple « reprends au point 6 » et il reprends là où il en était !

Sur cette demande précise, il m’a à un moment simplement dit qu’il fallait coder le contenu des onglets que je lui avais demandé en m’indiquant la documentation à suivre. En bon fainéant développeur efficient que je suis, je lui ai donc demander de les coder également !

Quand on demande poliment, on obtient tout ce que l'on veut !

Il m’aura suffit d’assembler les morceaux, de personnaliser deux ou trois petites choses pour obtenir, en moins de 15mn au total, un plugin pleinement fonctionnel !

Pour la mise à jour de la version 1.2, j’ai fait le choix de… refaire tout le travail, en interagissant avec de nouvelles IA disponibles : tout d’abord Claude 3.7 Sonnet pour le premier jet, puis Mistral AI Pro pour le peaufinage et l’ajout de petits détails (avec un passage via ChatGPT+ pour quelques menus détails puisque Mistral AI ne permet pas de « passer » un fichier PHP en pièce jointe…)

Le plugin en détail

Le plugin en question se présente en deux aspects :

  • l’ajout d’une colonne dans la liste des articles dans le back-office (triable et permettant d’identifier clairement les posts ayant déjà des liens sortants)
  • l’ajout d’une page de paramétrage avec deux onglets dédiés

Côté liste d’articles, le résultat est très simple mais fonctionnel :

Plugin affichant les liens externes par articles

À noter que la colonne peut faire l’objet d’un tri, ce qui me semblait essentiel à l’usage !

Côté paramètres, c’est désormais dans les « Outils » de WordPress qu’il faut aller chercher l’onglet très intelligemment nommé « External Link Checker » :

Accéder à External Link Checker

Là, on retrouve nos deux onglets. Le premier ne comporte qu’un champs texte avec un bouton de validation, permettant d’indiquer une éventuelle classe CSS des liens à ignorer dans le décompte. Si comme moi vous utilisez l’excellent Link Juice Optimizer, il vous suffira d’y indiquer la classe par défaut des liens obfusqués pour qu’ils ne soient (logiquement) pas comptabilisés.

Nouveauté de la version 1.2 : désormais, la classe est obsolète (je l’ai laissée par principe) car le plugin analyse chaque contenu après traitement de tous les autres plugins (afin de ne pas comptabiliser les liens obfusqués par divers plugins tiers !) ; ainsi, seuls les liens réels sont comptabilisés, tels qu’affichés en front-office !

Il est possible de forcer l’analyse des posts via le bouton « Analyser les articles existants » (attention aux gros sites : à titre d’exemple, sur l’un des miens avec ~450 articles, il faut compter 2 à 3 minutes…)

Par ailleurs, j’ai ajouté les statistiques par catégories de posts, ce qui permet de voir en un coup d’oeil quelles catégories comportent trop de liens sortants (ou pas) !

Les statistiques par catégories dans External Link Checker

Enfin, j’ai ajouté également une visualisation graphique par catégories, pour le fun !

La visualisation graphique des statistiques par catégories

Le second onglet, nommé « Export », permet comme son nom l’indique d’exporter au format CSV la liste telle que présentée à l’écran, des articles ayant au moins 1 lien sortant :

L'onglet d'exportation de la liste des articles avec des liens sortants

Attention : si votre blog comporte un très grand nombre d’articles, ça risque de ralentir un peu l’affichage !!!

Télécharger le plugin

Bien entendu, je vous offre le code du plugin, disponible sur Github ici ; pour les plus fainéants d’entre vous, voici également le lien de téléchargement direct :

Disclaimer : ce plugin est donné à titre expérimental et ne saurait garantir la sécurité de votre site. À ne pas utiliser sur vos sites en production (ou à n’installer et utiliser que très ponctuellement !)

Voir tous les articles de la catégorie WordPress

Ça pourrait vous intéresser !

1 réflexion sur “WordPress : un plugin pour lister les posts avec des liens sortants”

  1. Avatar de omnireso

    Très utile Cédric merci, ne pas oublier de mettre à jour cette page avec la dernière version 2025 😉

    Répondre

Laisser un commentaire

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

Retour en haut