WP_REST_Request::get_param()
Définition : WP_REST_Request::get_param() récupère un paramètre par son nom en appliquant l’ordre de priorité des sources gérées par WordPress. Elle retourne la valeur trouvée ou null lorsqu’aucune valeur utilisable n’est présente.
Comprendre et utiliser
À quoi sert cette notion ?
Elle simplifie la lecture des options d’un endpoint lorsque l’on accepte des paramètres provenant du corps JSON, d’un formulaire, de l’URL ou des valeurs par défaut.
Fonctionnement technique
La méthode consulte des sources de paramètres fusionnées. Elle n’assure pas à elle seule la validité du type, l’autorisation ni l’échappement de la donnée.
Dans quel contexte l’utiliser ?
Un endpoint de recherche lit per_page pour limiter la taille d’une liste.
Étude de cas : application professionnelle
Pour une liste de contenus, définir une limite par défaut puis une limite maximale côté serveur. Un client peut demander per_page=10 pour une page courante ou tenter per_page=5000. La fonction get_param() extrait la valeur, mais c’est la validation et le bornage du serveur qui empêchent une charge excessive. Examiner aussi ce qu’il se passe si le paramètre est absent, vide ou fourni sous un type inattendu. Un test automatisé couvrant ces cas est beaucoup plus utile qu’un exemple qui fonctionne uniquement avec l’entrée nominale.
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
$limit = absint( $request->get_param( 'per_page' ) );
$limit = max( 1, min( 20, $limit ?: 10 ) );
// Utiliser $limit dans une requête maîtrisée.
Décryptage du code et résultat attendu
La valeur reçue est convertie et bornée entre 1 et 20. Dans un véritable endpoint, les arguments peuvent aussi être déclarés avec un schéma de validation.
Exercice guidé pour vérifier la notion
Comparer un appel GET avec per_page=3 puis per_page=500 et vérifier que la limite métier demeure imposée.
Précautions et limites
Une clé absente et une clé fournie avec null peuvent nécessiter des traitements différents ; consulter has_param() pour connaître la présence effective.
À ne pas confondre
get_param() utilise les sources fusionnées ; get_json_params() lit explicitement le corps JSON, tandis que get_url_params() lit les variables de chemin.
Diagnostic avancé
Si une valeur inattendue prévaut, examiner les sources de paramètres dans leur ordre et expliciter le format accepté dans le schéma.
Choix d’architecture et déploiement
Pour les endpoints exposés, déclarer les arguments et leurs bornes dès l’enregistrement ; le bornage dans la callback reste une défense métier complémentaire.
