Récupérer l’URL de n’importe quelle page

Pour obtenir l’adresse d’un article et l’utiliser dans son thème — par exemple pour les réseaux sociaux — WordPress propose une fonction toute simple. En utilisant the_permalink();, on obtient le lien de l’article en cours et cela fonctionne parfaitement.

Le problème se pose dès que vous voulez l’URL d’une page qui n’est pas créée manuellement par vos soins (article ou page), mais générée automatiquement par WordPress. Mettons que vous voulez l’adresse d’une page d’archive, comme celle qui rassemble tous les articles publiés pendant un mois, cette fonction ne donne pas bon le résultat. Elle vous donnera l’adresse du dernier article et non celle de la page d’archive elle-même.

Pour trouver toutes les adresses du blog, quelle qu’elle soit, il existe ce code qui fonctionne très bien d’après mon expérience :

echo home_url( $wp->request );

Je dois avouer que je ne sais pas exactement comment cela marche, mais ça marche. Rendons à César, ce qui appartient à César : l’inspiration vient de ce blog. À noter que j’ai simplifié la version originale, puisqu’elle allongeait l’URL de base sans aucune raison apparente. Si quelqu’un veut m’expliquer que j’ai tort, les commentaires sont ouverts…