GD Location Manager : Comment modifier la structure des permaliens (URL) ?

Questions et réponsesSujet : GeoDirectoryGD Location Manager : Comment modifier la structure des permaliens (URL) ?
Question posée par Bigue Niqueadminil y a 4 mois
L’extension GeoDirectory Location Manager modifie certains permaliens pour en y ajoutant les slugs correspondant aux pays/région/ville/quartier. On distinguera :

  • Les pages des emplacementslocations») : forme https://x-local.fiatlux.tk/%location_page%/%country%/%region%/%city%/%neighbourhood%/
    • %location_page% correspond au slug de la page modèle (template) GD Location Page (et peut donc être modifié, mais non oblitéré).
    • Les composantes suivantes sont présentes ou non selon l’emplacement, e.g.:
    • Si GeoDirectory est configuré pour un seul pays dans GeoDirectory > Settings > Locations, il y a une option pour enlever la composante Pays des permaliens; même chose pour la composante Région, si celle-ci est fixe.
    • Pour faire simple, appelons dorénavant la série de longueur variable de composantes d’emplacement le chemin d’emplacement (%location_path%)
  • Les pages d’items («Places», ou plus généralement, n’importe quel type de «CPT» de GeoDirectory), sous la forme : https://x-local.fiatlux.tk/%cpt_slug%/ + combinaison configurable dans l’Admin WP, Paramètres > Permaliens, section GeoDirectory Permalinks.
    • On peut y ajouter %country%, %region%, %city%, %category% en plus de %postname% et/ou %post_id%, dans l’ordre qu’on désire.
    • La composante de base /%cpt_slug%/ ne peut être ni déplacée, ni oblitérée.
  • Les pages d’archives d’items, sous forme : https://x-local.fiatlux.tk/%cpt_slug%/%location_path%/
    • Outre la valeur du slug et les options déjà citées contrôlant notre %location_path%, il n’existe pas d’option dans GD pour modifier la structure de ces permaliens.
  • Les pages d’archives des catégories ou de tags d’items, sous la forme : https://x-local.fiatlux.tk/%cpt_slug%/%taxonomy_base%/%category%/%location_path%/
    • Les %taxonomy_base% pour chaque taxonomie (Catégorie, Tags) sont modifiables dans l’Admin WP : Paramètres > Permaliens, section GeoDirectory Taxonomies.
    • Seul le slug de la catégorie enfant est utilisé pour les catégories hiérarchiques.
    • Encore une fois, pas d’option pour configurer ces permaliens à sa guise.

Note : Les pages d’archives, malgré leur dénomination à connotation muséale, sont pas mal des éléments essentiels pour la navigation et le référencement par catégorie ! Elles sont donc appelées à être au premier plan lors de la navigation sur le site et à attirer une bonne partie du traffic en provenance des moteurs de recherche.

Ce que j’aimerais être capable de faire, c’est de reproduire une structure d’URL similaire à celle que j’avais établie pour (l’ancien) Fiat+⁄-Lux Local — non seulement parce que je suis un vieux réactionnaire (je le deviens progressivement, je l’admet) qui refuse de s’adapter au changement, mais parce que cela me semble plus logique que la structure d’URL commence avec le plus général (%location_path%) et termine avec le plus particuler (%category% enfant).

Je voudrais donc pouvoir réécrire tous ces permaliens :

  • en commençant avec le chemin de l’emplacement (notre %location_path%) ;
  • ensuite, lorsqu’applicable, avec le %cpt_slug% («places», «restaurants», «evenements», etc.) — de sorte que tous les types de contenus pour un emplacement donné partagent la même URL de base ;
  • et enfin (pour les archives), avec la hiérarchie des catégories plutôt que seulement le dernier rejeton (e.g. “restaurants/restaurants-asiatiques/restaurants-coreens”, ou “services/garages”) — ainsi, la structure des URL est représentative de la structure du contenu du site, ce que j’ai toujours cru excellent, non seulement pour la navigation, mais aussi pour la SEO.

Note : Je pourrais aussi très bien me passer des composantes %location_page%, %cpt_slug%, %taxonomy_base% dans à peu près tous les cas — à partir du moment où les slugs des catégories sont assez descriptives, elle sont plutôt redondantes et plus encombrantes qu’utiles. Je suis conscient que c’est un problème d’une complexité supérieure au niveau de l’implémentation dans WordPress : on va donc garder cette exigences pour une autre question. Mais une solution qui s’adapterait mieux à ce critère virtuel pourrait l’emporter, au bout du compte, sur une autre.

Je serai bien curieux de voir les solutions que je vais avoir à me proposer.