get_rest_url()
Définition : get_rest_url() renvoie une URL vers un endpoint REST WordPress en permettant notamment de préciser le site concerné. Cette fonction complète rest_url() et prend en charge certains besoins multisites.
Comprendre et utiliser
À quoi sert cette notion ?
Elle apporte une méthode centralisée pour construire des adresses d’API sans dépendre d’une structure de permaliens supposée uniforme.
Fonctionnement technique
La fonction accepte un identifiant de blog facultatif, le chemin REST et un schéma d’URL. Pour le blog courant, une valeur null utilise son contexte.
Dans quel contexte l’utiliser ?
Dans un réseau multisite, un outil de diagnostic doit construire l’URL REST d’un site précis au lieu de reprendre celle du site principal.
Étude de cas : application professionnelle
Un réseau multisite peut héberger plusieurs sites, chacun avec ses propres ressources et parfois une structure d’URL spécifique. get_rest_url() permet de demander l’adresse REST d’un site précis. Dans une maquette, récupérer l’ID du site courant, construire son URL puis comparer avec rest_url(). Si le réseau comporte deux sites, réaliser le même contrôle avec chacun sans mélanger leurs permissions. Le fait de connaître une URL ne permet pas d’accéder aux contenus privés du site ciblé. Toute intégration multisite doit traiter explicitement le contexte et les droits.
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
$site_id = get_current_blog_id();
$url = get_rest_url( $site_id, 'wp/v2/posts' );
echo esc_url( $url );
Décryptage du code et résultat attendu
Le code détermine le site courant puis construit une URL REST pour ses publications. Il affiche l’adresse échappée dans un contexte textuel HTML.
Exercice guidé pour vérifier la notion
Comparer get_rest_url() et rest_url() sur un site simple ; refaire le test sur un réseau local si disponible.
Précautions et limites
Ne pas supposer qu’un utilisateur autorisé sur un site du réseau possède les mêmes droits sur un autre. L’URL n’inclut aucune authentification.
À ne pas confondre
get_rest_url() accepte un blog_id ; rest_url() est un raccourci pour le site courant.
Diagnostic avancé
Si les URLs pointent vers le mauvais sous-site, vérifier le blog_id et l’état du contexte multisite.
Choix d’architecture et déploiement
Centraliser la construction des URLs dans la couche serveur et ne pas coder en dur les chemins des environnements de test.
