Les permaliens WordPress - choix 'Nom de l'article'

Les permaliens WordPress

Les permaliens sont les « adresses web » (les url) qui permettent de désigner ce qu’on souhaite afficher (un article, une page, les articles d’une catégorie ou relatif à une étiquette, les articles publiés par un auteur ou à une certaine date).

WordPress permet de choisir la structure des permaliens utilisés sur le site. Par exemple, pour un article il est possible d’inclure son identifiant, son nom, sa date de parution + son nom…

Une fois choisie la structure du permalien, il est dangereux d’en changer : les visiteurs et les outils de référencement ne trouveraient plus les articles dont ils avaient conservé l’adresse.

A noter : le codex WordPress décrit l’utilisation des permaliens (en anglais) ainsi que le moyen de contourner certaines difficultés techniques.

Choisir son type de permalien

Le choix du type de permalien peut s’effectuer à partir du menu Réglages de l’administration WordPress :

Les permaliens WordPress - administration
Les permaliens WordPress – administration

Il est possible de choisir une structure de permaliens parmi celles proposées ou d’en personnaliser une :

Les permaliens WordPress - choisir la structure par défaut
Les permaliens WordPress – choisir la structure par défaut
Haut de page

Le permalien « par défaut »

Ce type de permalien est celui sélectionné par WordPress lors de l’installation d’un nouveau site.

Le permalien « par défaut » est composé de l’adresse web (url) du site, d’un point d’interrogation et d’une chaîne de caractères permettant d’identifier ce que l’on souhaite afficher.

Permalien par défaut pour une page unique

Ces permaliens correspondent à la demande d’affichage d’un article précis ou d’une page précise.

Permalien par défaut pour les articles

Dans ce cas, la chaîne de caractères qui suit l’adresse du site est composée des caractères “?p=” suivi de l’identifiant de l’article dans la table wp_posts.

Rappel : pour des raisons de simplification, nous utilisons le préfixe générique ‘wp_‘ pour désigner les tables WordPress. Dans les exemples ci-dessous, la table ‘wp_posts’ est en réalité la table ‘pfxdemo_posts’.

Les permaliens WordPress - affichage article avec permalien par défaut (article)
Les permaliens WordPress – affichage article avec permalien par défaut (article)

On peut vérifier que le post ‘1683’, dans la table wp_posts,  correspond bien à l’article titré ‘Dupliquer les articles d’un  site à l’autre’ :

Les permaliens WordPress - permalien par défaut et table wp_posts (article)
Les permaliens WordPress – permalien par défaut et table wp_posts (article)

Permalien par défaut pour une page

Dans ce cas, la chaîne de caractères qui suit l’adresse du site est composée des caractères “?page_id=” suivi de l’identifiant de la page dans la table wp_posts.

Les permaliens WordPress - permalien par défaut et table wp_posts (page)
Les permaliens WordPress – permalien par défaut et table wp_posts (page)

On peut vérifier que le post ’88’, dans la table wp_posts correspond bien à la page titrée ‘Liens utiles’ :

Les permaliens WordPress - permalien par défaut et table wp_posts (page)
Les permaliens WordPress – permalien par défaut et table wp_posts (page)

Les permaliens par défaut pour les archives

Les archives  désignent dans WordPress le regroupement d’articles suivant l’un des critères : même catégorie, même étiquette, même auteur ou même période calendaire.

A noter : si vous cliquez sur un lien d’archive et que WordPress vous redirige vers une autre page que celle correspondant à l’archive demandée (typiquement : la page d’accueil), vérifiez si vous n’avez pas activé une extension (plugin) de référencement.
En effet, un même article peut être affiché sur différentes pages :  accueil, article, catégorie, étiquette, auteur ou date de publication.
Quand un site affiche le même contenu sur des pages différentes, cela devient ce qu’on appelle du contenu dupliqué (duplicate content en anglais). Les outils de référencement peuvent le considérer comme une manoeuvre et dégrader votre rang dans l’affichage des résultats. Pour l’éviter, les extensions de référencement proposent de supprimer certaines archives.

Permalien par défaut pour une catégorie

Dans ce cas, la chaîne de caractères qui suit l’adresse du site est composée des caractères “?cat=” suivi de l’identifiant de la catégorie dans la table wp_terms.

Les permaliens WordPress - permalien par défaut et table wp_terms (catégorie)
Les permaliens WordPress – permalien par défaut et table wp_terms (catégorie)

On peut vérifier que l’enregistrement ‘5’ correspond bien, dans la table wp_terms, à la catégorie titrée ‘Héberger WordPress’ :

Les permaliens WordPress - permalien par défaut et table wp_terms (catégorie)
Les permaliens WordPress – permalien par défaut et table wp_terms (catégorie)

Permalien par défaut pour une étiquette

Dans ce cas, la chaîne de caractères qui suit l’adresse du site est composée des caractères “?tag=” suivi de ce qu’on appelle ‘le slug’ de l’étiquette dans la table wp_terms.

Les permaliens WordPress - choix de l'étiquette avec permalien par défaut
Les permaliens WordPress – choix de l’étiquette avec permalien par défaut

On peut vérifier que le slug ‘system » correspond bien,  dans la table wp_terms, à l’étiquette ‘système’ :

Les permaliens WordPress - permalien par défaut et table wp_terms (étiquette)
Les permaliens WordPress – permalien par défaut et table wp_terms (étiquette)

Permalien par défaut pour un auteur

Dans ce cas, la chaîne de caractères qui suit l’adresse du site est composée des caractères “?author=” suivi de l’identifiant de l’auteur dans la table wp_users :

Les permaliens WordPress - permalien par défaut et table wp_users (author)
Les permaliens WordPress – permalien par défaut et table wp_users (author)

On peut vérifier que l’utilisateur d’identifiant ‘4’ est bien, dans la table wp_users, l’utilisateur de nom affiché ‘Admin’ :

Les permaliens WordPress - permalien par défaut et table wp_users (author)
Les permaliens WordPress – permalien par défaut et table wp_users (author)

Permalien par défaut pour une date de publication

Il est possible d’obtenir les articles parus à une date particulière (Dans ce cas, la chaîne de caractères qui suit l’adresse du site est composée des caractères “?m=” suivi d’une date; une date peut être une année (exemple : ?m=2015), un mois (exemple : ?m=201503) ou un jour (exemple : ?m=20150315) :

Les permaliens WordPress - permalien par défaut et table wp_posts (date de publication)
Les permaliens WordPress – permalien par défaut et table wp_posts (date de publication)

On peut vérifier que l’article titré « Article de démo pour les taxonomies’ a bien une date de publication au 15 mars 2015, dans la table wp_posts :

Les permaliens WordPress - permalien par défaut et date de publication dans wp_posts
Les permaliens WordPress – permalien par défaut et date de publication dans wp_posts
Haut de page

Exemple d’un permalien basé sur le nom de l’article

Comme nous l’avons vu, il est possible d’utiliser d’autres types de permaliens. Cela permet d’obtenir des adresses web plus lisibles et d’améliorer le référencement.

Pour l’illustrer, nous allons choisir l’option Nom de l’article qui est très fréquemment utilisée :

Les permaliens WordPress - choix 'Nom de l'article'
Les permaliens WordPress – choix ‘Nom de l’article’

L’adresse web ne contient plus de paramètres (« ?param= ») mais un identifiant qui est une chaîne de caractères pouvant être définie par un rédacteur ou un administrateur.

Permalien ‘Nom de l’article’ appliqué aux articles

Les permaliens WordPress - choix 'Nom de l'article' (article)
Les permaliens WordPress – choix ‘Nom de l’article’ (article)

On constate que l’adresse web n’a plus de point d’interrogation suivi du paramètre ‘p=nnnn’,  qui sont remplacés par le nom de l’article (champ post_name de la table wp_posts) :

Les permaliens WordPress - permalien 'Nom de l'article' pour un article (wp_posts)
Les permaliens WordPress – permalien ‘Nom de l’article’ pour un article (wp_posts)

En regardant dans l’administration, on constate que nom de l’article est défini lors de la saisie de l’article :

Les permaliens WordPress - définir le nom d'un article
Les permaliens WordPress – définir le nom d’un article

Permalien ‘Nom de l’article’ appliqué aux pages

Les permaliens WordPress - choix 'Nom de l'article' (page)
Les permaliens WordPress – choix ‘Nom de l’article’ (page)

On constate que l’adresse web n’a plus de point d’interrogation suivi du paramètre ‘page_id=nnnn’,  qui sont remplacés par le nom de la page (champ post_name de la table wp_posts) :

Les permaliens WordPress - permalien 'Nom de l'article' pour une page (wp_posts)
Les permaliens WordPress – permalien ‘Nom de l’article’ pour une page (wp_posts)

En regardant dans l’administration, on constate que le nom de la page est défini lors de la saisie de la page :

Les permaliens WordPress - définir le nom d'une page
Les permaliens WordPress – définir le nom d’une page

Permalien ‘Nom de l’article’ appliqué aux catégories

Les permaliens WordPress - permalien 'Nom de l'article' (catégorie)
Les permaliens WordPress – permalien ‘Nom de l’article’ (catégorie)

On constate que l’adresse web n’a plus de point d’interrogation suivi du paramètre ‘cat=nnnn’,  qui sont remplacés par un préfixe de catégorie (‘categrory/‘ et le ‘slug’ de la catégorie que l’on trouve dans la table wp_terms :

Les permaliens WordPress - permalien 'Nom de l'article' pour une catégorie (wp_terms)
Les permaliens WordPress – permalien ‘Nom de l’article’ pour une catégorie (wp_terms)

Le préfixe de catégorie est modifiable dans l’administration (menu ‘Réglages‘, sous-menu ‘Permaliens‘); modifions ce préfixe pour le remplacer par ‘sujet‘ :

Les permaliens WordPress - modification du préfixe de catégorie
Les permaliens WordPress – modification du préfixe de catégorie

On peut vérifier que le préfixe de catégorie est désormais ‘sujet‘ dans l’adresse web :

Les permaliens WordPress - effet de la modification du préfixe de catégorie
Les permaliens WordPress – effet de la modification du préfixe de catégorie

Permalien ‘Nom de l’article’ appliqué aux étiquettes

Les permaliens WordPress - permalien 'Nom de l'article' (étiquette)
Les permaliens WordPress – permalien ‘Nom de l’article’ (étiquette)

On constate que l’adresse web n’a plus de point d’interrogation suivi du paramètre ‘tag=nnnn’,  qui sont remplacés par une base des étiquettes (‘tag/‘ et le ‘slug’ de l’étiquette que l’on trouve dans la table wp_terms :

Les permaliens WordPress - permalien 'Nom de l'article' pour une étiquette (wp_terms)
Les permaliens WordPress – permalien ‘Nom de l’article’ pour une étiquette (wp_terms)

La base des étiquettes est modifiable dans l’administration (menu ‘Réglages‘, sous-menu ‘Permaliens‘); modifions ce préfixe pour le remplacer par ‘clé‘ :

Les permaliens WordPress - modification de la base des étiquettes
Les permaliens WordPress – modification de la base des étiquettes

On peut vérifier que la base des étiquettes est désormais ‘clé‘ dans l’adresse web (remarque : il n’est pas conseillé d’utiliser des caractères accentués dans les adresses web) :

Les permaliens WordPress - choix 'Nom de l'article' (étiquette avec base modifiée)
Les permaliens WordPress – choix ‘Nom de l’article’ (étiquette avec base modifiée)

Permalien ‘Nom de l’article’ appliqué aux auteurs

Les permaliens WordPress - choix 'Nom de l'article' (auteur)
Les permaliens WordPress – choix ‘Nom de l’article’ (auteur)

On constate que l’adresse web n’a plus de point d’interrogation suivi du paramètre ‘author=nnnn’,  qui sont remplacés par la base ‘author/‘ et le ‘user_nicename‘ de l’auteur qu’on retrouve dans la table wp_users :

Les permaliens WordPress - 'Nom de l'article' pour un auteur (wp_users)
Les permaliens WordPress – ‘Nom de l’article’ pour un auteur (wp_users)

En regardant dans l’administration, on constate que le user_nicename est défini lors de la saisie de l’utilisateur :

Les permaliens WordPress - création de l'identifiant d'utilisateur
Les permaliens WordPress – création de l’identifiant d’utilisateur

En revanche, une fois l’utilisateur créé, il n’est plus possible de modifier son identifiant :

Les permaliens WordPress - impossibilté de modifier l'identifiant d'un utilisateur existant
Les permaliens WordPress – impossibilté de modifier l’identifiant d’un utilisateur existant

Permalien ‘Nom de l’article’ appliqué aux dates de publication

Les permaliens WordPress - choix 'Nom de l'article' (date de publication)
Les permaliens WordPress – choix ‘Nom de l’article’ (date de publication)

On constate que l’adresse web n’a plus de point d’interrogation suivi du paramètre ‘m=aaaammjj’,  qui sont remplacés par la date séparée par des barres obliques.

Haut de page

Permaliens personnalisés

Le codex WordPress explique, en anglais, comment créer un permalien personnalisé.
Voici les paramètres autorisés pour se créer un permalien personnalisé :

  • %year% : l’année de publication (‘aaaa’)
  • %monthnum% : le mois de publication (‘mm’)
  • %day% : le jour du mois de publication (‘jj’)
  • %hour% : l’heure de publication (‘hh’)
  • %minute% : la minute dans l’heure de publication (‘mm’)
  • %second% : la seconde dans la minute de publication (‘ss’)
  • %post_id% : l’identifiant de l’article ou de la page
  • %postname% : la version expurgée du titre de l’article ou de la page (‘ceci est un super article !’ devient ‘ceci-est-un-super-article’)
  • %category% : la version expurgée de la catégorie (prend en compte les sous-catégories 1)
  • %author% : la version expurgée du nom de l’auteur

1 : dans l’exemple ci-desous, on affiche la catégorie de slug ‘sous-categ » qui est une sous-catégorie de la catégorie « categ-demo » :

Les permaliens WordPress - permalien personnalisé pour une sous-catégorie

Quel que soit le type de lien personnalisé choisi, les permaliens relatifs aux catégories et aux étiquettes restent ceux présentés ci-dessus : utilisation respectivement du préfixe de catégorie et de la base des étiquettes.
Les permaliens d’auteur et de date de publication peuvent être différents, notamment par l’ajout d’une constante.

Haut de page

Permalien et configuration du serveur http

Quand on tape une adresse du type http://www.monsite.fr/?p1=1&p2=2 :

  • le réseau internet va chercher à se connecter à la machine correspondant au nom de domaine monsite.fr (voir : obtenir une adresse web),
  • si, à cette adresse, un serveur http est en attente de connexion (par exemple un serveur Apache), celui-ci va rechercher des fichiers par défaut (index.html ou index.php dans le cas d’Apache),
  • si WordPress est installé sur le serveur, le fichier index.php va s’exécuter avec les paramètres récupérés grâce au serveur http ( p1=1&p2=2 dans notre exemple).

On comprend donc comment fonctionne WordPress quand on utilise les permaliens par défaut.

En utilisant un permalien personnalisé (par exemple basé sur le nom d’article), l’adresse devient http://ww.monsite.fr/nom-article/. Le processus   est alors le suivant :

  • le réseau internet va chercher à se connecter à la machine située à l’adresse monsite.fr (pas de changement, c’est le ‘.fr’ qui identifie le nom de domaine),
  • si à cette adresse, un serveur http est en attente de connexion (par exemple un serveur Apache), celui-ci va rechercher le fichier ou le répertoire nom-article qui n’existe pas !

Nous devrions avoir une erreur 404 pour fichier non trouvé, or WordPress nous affiche l’article, s’il existe bien entendu. En fait, quand on choisit un permalien personnalisé dans le menu Réglages de l’administration, WordPress modifie le fichier de configuration du serveur http. Dans le cas d’un serveur Apache, c’est le fichier .htaccess qui est modifié (ou créé s’il n’existe pas).

Le fichier .htaccess se situe à la racine de l’installation WordPress :

Les permaliens WordPress - trouver le fichier .htaccess
Les permaliens WordPress – trouver le fichier .htaccess

WordPress insère le code suivant dans le fichier .htaccess :

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /demo/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /demo/index.php [L]
</IfModule>

# END WordPress
Les permaliens WordPress - code inséré dans le fichier .htaccess

En synthèse, voici ce qu’effectue ce code :

  • les lignes commençant par le caractère ‘#’ sont des lignes de commentaires qui n’effectuent aucune action,
  • vérifier si le module rewrite_module d’Apache est installé; si oui, l’activer, sinon aucune action n’est effectuée et il faudra se contenter des permaliens par défaut,
  • si l’adresse demandée est le fichier index.php à la racine de l’installation de WordPress : ne rien faire (fonctionnement standard d’Apache : index.php sera exécuté),
  • si l’adresse demandée correspond à un fichier ou un répertoire existant : ne rien faire (fonctionnement standard d’Apache : le fichier sera exécuté ou affiché et le répertoire sera affiché sauf directive l’interdisant),
  • dans les autres cas, le fichier index.php à la racine de WordPress sera exécuté,

Autrement dit, si l’adresse web ne correspond pas à un fichier ou un répertoire existant, le fichier index.php de WordPress est exécuté : c’est lui qui lance l’exécution de WordPress (on appelle cela un bootstrap, ce qu’on peut traduire par ‘amorce’. WordPress va récupérer la partie d’adresse au delà ce qui désigne l’adresse du serveur. Il va rechercher si cela désigne un élément WordPress (article, page, catégorie…). Si oui, il l’affiche, sinon il affiche une page d’erreur.

Haut de page

Corriger les problèmes de permaliens

Si une page ne s’affiche pas, le problème se situe vraisemblablement au niveau de cette page. En revanche, si plusieurs, voire toutes les pages ne s’affichent pas, il y a certainement un problème au niveau de la gestion des permaliens.

Vérifier le serveur http

Un message du type ci-dessous indique que le serveur http est absent (non installé, non lancé ou en panne). Si le problème persiste sur un hébergement, il faut contacter le support de l’hébergeur. Sur une installation en local (exemple : wampserver), faut vérifier l’installation du serveur.

WordPress permaliens - serveur http absent
WordPress permaliens – serveur http absent

Un message du type ci-dessous indique que le serveur est lancé (la mention ‘Apache‘ montre que le message a été envoyé par le serveur http Apache).

WordPress permaliens - serveur http lancé
WordPress permaliens – serveur http lancé

Si la page d’accueil s’affiche mais pas les autres pages, c’est que le serveur http ne parvient pas à gérer les permaliens. Dans le cas d’un serveur Apache, il faut vérifier que le rewrite_module est activé :

WordPress permaliens - rewrite_module activé
WordPress permaliens – rewrite_module activé

Vérifier le fichier de configuration du serveur http

Si le rewrite_module (ou équivalent sur un autre serveur http) est activé, mais que les pages ne s’affichent pas en dehors de la page d’accueil, il faut vérifier que le fichier de configuration a bien été modifié pour pouvoir gérer un site WordPress. Rappelons que dans le cas d’un serveur Apache, le fichier .htaccess doit contenir les instructions ci-dessous :

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /demo/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /demo/index.php [L]
</IfModule>

# END WordPress
Les permaliens WordPress - code inséré dans le fichier .htaccess

Si le fichier .htaccess n’est pas correct, il est possible d’essayer de le mettre à jour via l’administration WordPress, en accédant à la page Réglages / Permaliens et cliquant sur Enregistrer les modifications (inutile de modifier le choix de structure de permaliens).

WordPress permaliens - mise à jour automatique de .htaccess
WordPress permaliens – mise à jour automatique de .htaccess

Si le fichier .htaccess n’est pas modifié, il faut vérifier ses droits d’accès ou le mettre à jour ‘manuellement’ (via un client FTP comme FileZilla par exemple).

Vérifier la mise à jour des permaliens

Un message de page non trouvée comme ci-dessous, indique que l’installation est correcte mais que la page demandée n’existe pas ou plus (il est important de remarquer que ce message provient de WordPress, donc le serveur http lui a bien transmis la main) :

WordPress permaliens - page inexistante
WordPress permaliens – page inexistante

Lorsque la structure des permaliens est modifiée, cette modification n’est pas prise en compte dans les pages déjà affichées.Il suffit d’analyser l’url de la page affichée pour vérifier si elle est cohérente avec la structure de permalien qui a été choisie. Dans l’exemple ci-dessous, la page ne s’affichera pas si la structure active des permaliens est la structure par défaut ou une structure basée sur la date de publication :

WordPress permaliens - vérifier la cohérence des permaliens
WordPress permaliens – vérifier la cohérence des permaliens

Un simple réaffichage risque de ne pas suffire du fait de la gestion de la mémoire cache. Sous Windows, il faut appuyer en même temps sur les touches CTRL et F5 pour forcer le rechargement de la page avant son réaffichage.

Haut de page

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.