WordPress: Faire des liens entre articles

WordPress est un outil très complet et performant, mais il lui manque parfois des fonctions assez basiques. L’une d’elles est la possibilité de créer facilement des liens entre les articles ou les pages. Rien de plus rageant, en effet, lorsque l’on est en pleine rédaction, que devoir quitter l’éditeur, pour partir à la recherche du lien d’un article auquel nous voulons faire référence.
Heureusement, les plugins sont là pour nous aider et combler ces lacunes.

L’objectif

Je souhaite pouvoir facilement créer un lien vers un autre article, sans quitter l’éditeur, et sans devoir parcourir les dizaines d’articles, pour trouver le bon, et copier/coller son permalien.

Comparatif

Les plugins candidats ne sont pas très nombreux. Nous avons:

  1. AWS Easy Page Link
  2. Link to post,
  3. Post-to-Post Links II,
  4. RB internal links,
  5. WP-Site-Links

AWS Easy Page Link

Ce plugin étend les capacités de la fenêtre de liens de TinyMCE, en y ajoutant la liste des pages. Le regret est qu’il n’y a que les pages, et pas les articles. Dommage.

Liste des pages générée par AWS Easy Page Link
Liste des pages générée par AWS Easy Page Link

Link to Post

Link to post étend les fonctionnalités de TinyMCE en proposant deux boutons supplémentaires: le premier permet de faire un lien vers un article, le second vers une page.

L’utilisation est très aisée: il suffit de sélectionner le texte dans l’éditeur, puis de choisir l’un des boutons déjà cité.

Les deux boutons de Link to Post
Les deux boutons de Link to Post

S’ouvre alors une fenêtre permettant de faire une recherche rapide de l’article visé. Il s’agit ni plus ni moins que d’un petit moteur de recherche: nous tapons quelques mots, que le plugin va rechercher dans le titre des articles, le contenu, ou les deux.

Il suffit alors de cliquer sur le bon article pour que le lien soit automatiquement insérer dans le texte.

Fenêtre de recherche
Fenêtre de recherche

A l’usage, le plugin s’avère agréable à utiliser. Ce mode de recherche permet de trouver assez rapidement l’article visé, sans devoir naviguer dans des listes trop longues d’articles.

A noter un petit « bug », le nombre d’articles affichés après recherche, s’arrête à deux par page. Un petit modification dans le fichier link-to-post/tinymce/posts.php permet de changer ce nombre (j’ai choisi 10).

Post to Post Links II

Post-to-Post Links II est le plus rudimentaire des plugins présentés. Il propose simplement un shortcode à saisir manuellement. Exemple de shortcode:

[p2p type="id" value="53"]
[p2p type="slug" value="hello-world" text="read my Hello World post"]

La syntaxe du shortcode permet de designer un article par son titre ou son ID, mais également une catégorie, ou un tag. Cette saisie manuelle est relativement fastidieuse, parce qu’elle ne permet pas de contourner la fameuse recherche de l’article visé.

RB Internal Links

Ergonomiquement RB internal links reprend le principe utilisé par Link to Post. Le plugin ajoute un bouton à l’éditeur TinyMCE.

Bouton ajouté par RB Internal Links
Bouton ajouté par RB Internal Links

De la même façon, il faut sélectionner le texte dans l’éditeur, puis cliquer sur ce bouton. S’affiche alors une fenêtre permettant de choisir l’article cible. Le plugin propose de rechercher les articles par un système de navigation très agréable.

Fenêtre de sélection
Fenêtre de sélection

Pour un blog contenant peu d’articles, ce système de navigation est vraiment efficace. Avec beaucoup d’articles, je pense que la sélection doit être un peu plus longue.

Sélection des articles
Sélection des articles

Après sélection, le plugin insère un shortcode dans le texte de l’éditeur.

Shortcode inséré
Shortcode inséré

A noter que, comme vous pouvez le constater sur les copies d’écran, le plugin permet également de faire des liens vers des catégories, des pages …

WP Site Links

WP-Site-Links propose une autre solution ergonomique, en utilisant une métaboxe intégrée à la page d’édition des pages ou des articles. Cette métaboxe contient la liste des articles et des pages, qu’il suffit de sélectionner.

Metabox du plugin WP-Site-Links
Metabox du plugin WP-Site-Links

L’idée est bonne, à condition que vous n’ayez pas trop d’articles. Ce blog contient un peu plus de 150 articles, ce qui est loin d’être énorme. WP Site Links affiche donc une métaboxe de 150 lignes dans la page d’édition des articles. La page commence donc à avoir une certaine hauteur (ou une hauteur certaine), et il faut obligatoirement scroller pour trouver le bon article.

Conclusion

Deux plugins se détachent nettement du lot: Link to post, et RB internal links. Les deux disposent d’une bonne ergonomie, en proposant une interface directement accessible depuis TinyMCE.
Les deux plugins n’ont cependant pas la même philosophie: Link to post insère directement le lien dans la page, alors que RB internal links utilise un shortcode. Pour cette raison, j’ai fini par choisir Link to post, même si je préfère l’interface de son concurrent. En effet, je vois deux inconvénients à utiliser des shortcodes:

  • Les shortcodes nous rendent dépendants du plugin: comment faire lorsque l’on veut se débarasser du plugin?
  • Ils impliquent un traitement supplémentaire au moment de l’affichage des articles, ce qui peut induire certaines lenteurs.

16 thoughts on “WordPress: Faire des liens entre articles”

  1. j’utilise Link to post qui est génial (soit dit en passant il permet désormais de faire des liens entre tout). Un seul regret pour moi, il ne permet pas (enfin il me semble), de créer un lien dans les deux sens (un lien réciproque) avec l’article visé. Connaissez vous un plug qui sache le faire ?

  2. Merci pour ton aide précieuse Emmanuel !
    Existe-t-il un plugins ou une solution pour générer des liens automatiques vers les autres articles de la catégorie en pied de post ?
    Merci

  3. Je me suis retrouvé devant le simple problème du lien vers un article. Une petite recherche sur Google et me voila ici ! Merci pour ce comparatif pratique.

  4. Excellent article. Je ne cherchais pas vraiment ce type d’information… mais je vais de ce pas installer Link to Post.
    Merci à vous.

  5. Hello

    I finally found your blog that has some useful info about internal linking in WP. I am basic in my knowledge. I had RB Links installed 3months ago n still have no clue on how to use it.

    shortcode looks a bit daunting/difficult to me if you are new at this. Having read your post I agree with your comments. I feel RB makes sense for me.

    I hope you have tutorials somewhere to find.

    thanks for your article, very useful

  6. Bonjour Xavier,

    Je vois deux cas possibles:
    1- les permaliens sont corrompus,
    2- tu n’as pas renommer le permalien des pages que tu as renomme.

    Commencons par le plus simple, le cas 2:
    – Verifies dans l’interface d’administration,lorsque tu edites une page, que le lien situe juste en dessous du titre est bien correct par rapport au titre.
    – Compares ce lien avec celui d’une page qui marche.
    – Si le probleme vient de la, tu n’as qu’a editer le lien

    Cas 1: Il arrive parfois que les permaliens ne fonctionnent plus, suite a une mise a jour, ou l’installation d’un plugin. Je te conseille donc les actions suivantes:
    – Sauvegarde le fichier .htaccess situe a la racine du blog (s’il existe)
    – Va dans le menu Reglages/Permaliens, et memorise tes parametres (une copie d’ecra suffit)
    – Verifies que les permaliens correspondent a ce que tu veux
    – Cliques sur le bouton de validation du formulaire.
    Cette operation devrait remettre a jour le fichier htaccess, et recalculer certains valeurs qui sont stockees dans la table wp_option.
    Si les choses se passent mal (mais il n’y a pas de raison), tu remets le fichier htaccess d’origine.

  7. bonjour Emmanuel,
    je viens de découvrir LinkToPost et merci de ton inventaire, ça confirme ce que je pensais.
    Sur mon site, j’ai une grosse hiérarchie de page, et je renomme parfois les pages. Du coup, pour faire un lien vers une page, j’évite d’embarquer toute la hiérarchie et je ne mets que la cible. Ex: href= »/mapage/ » ça marche tres bien. … euh ça marchait, car depuis mon upgrade en 2.8.4, ça ne marche plus, err 404. Mais sur un autre blog en 2.8.4 ça fonctionne … bref, tu as une idée comment WP fait pour trouver la bonne page lorsqu’on ne lui passe que le nom de la page (pas l’URL complète) et du coup avoir un piste sur ce que la migration 2.8.4 a bien pu casser??
    Merci d’avance et bravo pour ton site, tres riche et sympa.

  8. Merci pour ce très bon comparatif, je cherchais justement ce genre de plugin et je crois que je vais aussi opter pour LinkToPost

  9. Je n’ai pas encore migre la version en ligne du site, mais sur le blog de developpement, je suis en 2.8.1, et le plugin fonctionne tres bien.
    Quel genre de probleme as-tu rencontre?

  10. Je tient juste a precisser que link to post n’est pas encore compatible avec WP 2.8 !
    Vivement qu’il le devienne car c’est le meilleur plugin selon moi ;=

  11. J’utilise LinkToPost, mais je trouve dommage qu’il ne recherche pas tout seul l’expression sélectionnée lorsque l’on clique sur le bouton.

  12. Bonjour,

    Je pense que le probleme vient de la configuration du serveur Web (Apache), qui interdit l’acces aux repertoires ou se trouvent ces plugins.
    Le message est le suivant: File is not within the allowed path(s). Le fichier ne se trouve pas dans la liste des repertoires autorises.

    A ce niveau, je ne peux malheureusement pas intervenir.

    Emmanuel.

  13. Bonjour,

    Je suis un peu désespéré car je suis novice en wordpress. J’ai toujours le même message qui s’affiche quand j’installe download monitor ou Links to post. Dès que l’éditeur est concerné ça plante avec ce message :

    Warning: require_once() [function.require-once]: open_basedir restriction in effect. File(../../../../wp-blog-header.php) is not within the allowed path(s): (../.;d:\www\php\htdocs\tmp) in d:\www\semio-ajcs.com\htdocs\wp-content\plugins\link-to-post\tinymce\posts.php on line 2

    Warning: require_once(../../../../wp-blog-header.php) [function.require-once]: failed to open stream: Operation not permitted in d:\www\semio-ajcs.com\htdocs\wp-content\plugins\link-to-post\tinymce\posts.php on line 2

    Fatal error: require_once() [function.require]: Failed opening required ‘../../../../wp-blog-header.php’ (include_path=’.;C:\php5\pear’) in d:\www\semio-ajcs.com\htdocs\wp-content\plugins\link-to-post\tinymce\posts.php on line 2

    Merci pour votre aide,

    Vivien

Laisser un commentaire

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