rest_url()
Définition : rest_url() construit une URL complète vers un endpoint de la REST API WordPress pour le site courant. Elle tient compte de la configuration d’URL et évite d’écrire en dur le préfixe du serveur.
Comprendre et utiliser
À quoi sert cette notion ?
Elle facilite la génération de liens fiables depuis PHP, en particulier lorsque les permaliens ou les installations diffèrent entre développement et production.
Fonctionnement technique
La fonction délègue à get_rest_url() pour calculer l’adresse. La chaîne produite n’est pas échappée pour une sortie HTML : l’appelant doit effectuer l’échappement approprié.
Dans quel contexte l’utiliser ?
Un plugin insère une URL de lecture REST dans une page d’administration sans supposer que le site utilise toujours /wp-json/.
Étude de cas : application professionnelle
Dans un plugin destiné à être installé sur plusieurs sites, coder en dur https://example.com/wp-json/ provoque des erreurs de migration et de configuration. rest_url() tient compte de la structure WordPress. Construire une URL avec cette fonction puis l’afficher dans un attribut HTML après échappement. Tester sur un site avec permaliens classiques et un autre avec une configuration différente. Si l’URL semble correcte mais que la route échoue, distinguer génération de lien et existence réelle de l’endpoint. Le traitement des deux problèmes n’est pas le même.
Exemple technique commenté
Cet extrait est destiné à un fichier PHP chargé par WordPress, idéalement dans un plugin local de test. Il ne doit pas être placé dans l'éditeur de contenu. Avant exécution, vérifier que les objets et variables mentionnés existent dans le contexte et que les permissions nécessaires sont définies.
<?php
$url = rest_url( 'atoolpha/v1/ressources' );
echo '<a href= . esc_url( $url ) . >API ressources</a>';
Décryptage du code et résultat attendu
L’URL est construite par WordPress puis échappée au moment de produire un attribut HTML. L’existence de la route doit encore être assurée par l’extension.
Exercice guidé pour vérifier la notion
Sur deux environnements avec des structures de permaliens différentes, comparer la valeur renvoyée et tester la ressource.
Précautions et limites
Ne pas concaténer manuellement l’adresse du domaine et /wp-json/ : certains sites utilisent des configurations particulières.
À ne pas confondre
rest_url() cible le site courant ; get_rest_url() offre en plus un paramètre de site pour certains contextes multisites.
Diagnostic avancé
Si un lien retourne 404, vérifier que la route existe réellement plutôt que de remplacer automatiquement la fonction de génération d’URL.
Choix d’architecture et déploiement
Construire les liens côté serveur et échapper selon le contexte de sortie ; documenter les namespaces versionnés consommés par les intégrations.
