=== HKC Internal Links ===
Contributors: hkabla
Plugin URI: https://plugins.hervekabla.com/
Tags: internal links, seo, orphan posts, admin
Requires at least: 5.6
Tested up to: 6.6
Requires PHP: 7.2
Stable tag: 2.2.2
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Analyse du maillage interne : liens entrants et sortants de chaque article, articles orphelins et suggestions de liens à créer.

== Description ==

L'extension ajoute une page « Maillage » dans l'administration, avec trois onglets.

**Cartographie**

Un tableau de tous les articles publiés : nombre de liens entrants venant d'autres articles,
nombre de liens sortants vers d'autres articles. Les deux colonnes sont triables, la liste
est paginée (20, 50 ou 100 par page) et filtrable par minimum et maximum sur chacun des deux
compteurs — pour isoler par exemple les articles sans lien entrant, ou ceux qui ne renvoient
vers rien.

**Orphelins**

La liste des articles qui ne reçoivent aucun lien interne. Pour chacun, de une à cinq
suggestions d'articles qui pourraient pointer vers lui, avec la raison :

* **cite déjà le titre** — l'article mentionne le titre de l'orphelin dans son texte : le
  lien manque alors qu'il ne reste qu'à poser l'ancre. C'est le signal le plus fort ;
* **thème proche** — l'article partage le vocabulaire caractéristique de l'orphelin.

Chaque suggestion porte une **proximité estimée**, en pourcentage. Elle repose sur la
similarité cosinus des vocabulaires des deux articles, titre compté triple. Les suggestions
sous 15 % ne sont pas proposées : mieux vaut trois pistes solides que cinq dont deux au
hasard.

Chaque suggestion mène directement à l'éditeur de l'article concerné.

**Réglages**

L'heure de l'analyse nocturne. Un bouton « Analyser maintenant » permet de la relancer à
tout moment.

**Ce qui est compté**

Seuls les liens entre articles publiés sont retenus. Sont ignorés : les liens externes, les
ancres internes à une page, les adresses de courriel, les liens d'un article vers lui-même,
et les doublons — deux liens vers le même article ne comptent que pour un. Les liens relatifs
comme les liens absolus sont reconnus, y compris lorsque WordPress est installé dans un
sous-dossier.

L'analyse lit tous les articles ; elle est donc faite une fois, rangée en base, et
rafraîchie chaque nuit à l'heure choisie.

**Stockage**

Les liens sont rangés dans une table dédiée, `{préfixe}_hkc_maillage_liens`, et non dans
wp_options : la donnée est relationnelle, elle grossit avec le blog, et la cartographie peut
ainsi trier, filtrer et paginer en SQL sans charger le graphe entier en mémoire.

La reprise d'un stockage antérieur est automatique : à la première exécution suivant la mise
à jour, l'ancien contenu est transféré dans la table puis l'option est supprimée. La
vérification a lieu au chargement, et non à l'activation, car remplacer une extension par
son zip ne rejoue pas son hook d'activation.

La désinstallation supprime la table, les réglages et les caches.

== Installation ==

1. Téléverser `hkc-maillage.zip` depuis Extensions › Ajouter › Téléverser une extension.
2. Activer l'extension.
3. Ouvrir le menu « Maillage » : la première analyse démarre au premier affichage.

L'accès à la page requiert la capacité `edit_posts`.

== Frequently Asked Questions ==

= Peut-on analyser d'autres types de contenu que les articles ? =

Oui, via le filtre `hkc_maillage_post_types` :

`add_filter( 'hkc_maillage_post_types', function ( $types ) {
	return array( 'post', 'page' );
} );`

== Changelog ==

= 2.2.2 =
* Les mises à jour apparaissent dans l'heure qui suit leur mise en ligne, au lieu d'attendre jusqu'à une demi-journée : le manifeste du site éditeur n'est plus gardé que soixante minutes, la cadence à laquelle WordPress redemande de lui-même.

= 2.2.1 =
* Consultation sur téléphone : le tableau du maillage défile horizontalement en gardant ses en-têtes, au lieu d'empiler ses cellules sans libellé ; le lien « Voir » de chaque ligne est visible sans survol, et la pagination se vise au doigt.

= 2.2.0 =
* Renommée en anglais : « HKC Internal Links » (identifiant hkc-internal-links). Les réglages et les données sont conservés ; réinstaller l'extension depuis plugins.hervekabla.com.

= 2.1.0 =
* Mises à jour automatiques depuis plugins.hervekabla.com : les nouvelles versions apparaissent dans l'écran des extensions.

= 2.0.0 =
* Les liens sont désormais rangés dans une table dédiée plutôt que dans wp_options.
* Tri, filtres et pagination de la cartographie exécutés en SQL : la page reste rapide quel que soit le nombre d'articles.
* Reprise automatique du stockage antérieur, y compris lors d'un simple remplacement du zip.
* Désinstallation propre : table, réglages et caches supprimés.

= 1.1.0 =
* Chaque suggestion indique une proximité estimée en pourcentage, avec trois paliers lisibles.
* Les suggestions trop faibles ne sont plus proposées.

= 1.0.0 =
* Cartographie des liens entrants et sortants, triable, paginée et filtrable.
* Détection des articles orphelins et suggestions de liens entrants.
* Analyse nocturne à heure paramétrable, et à la demande.
