WP_REST_Request::has_param()

Définition : WP_REST_Request::has_param() indique si un paramètre est explicitement présent dans une requête REST WordPress. Elle distingue une propriété absente d’une propriété envoyée avec une valeur null.

Comprendre et utiliser

À quoi sert cette notion ?

Cette nuance est essentielle lorsqu’une mise à jour partielle doit préserver un champ omis, mais permettre de vider volontairement un champ transmis.

Fonctionnement technique

La méthode parcourt les sources de paramètres gérées par l’objet requête et renvoie un booléen. Elle ne renvoie pas la valeur et ne teste pas sa validité métier.

Dans quel contexte l’utiliser ?

Un formulaire met à jour une note facultative : omission signifie « conserver », valeur vide signifie « remplacer par vide ».

Étude de cas : application professionnelle

Dans une mise à jour partielle, l’utilisateur peut vouloir conserver un commentaire existant ou l’effacer explicitement. Si le client omet le champ, le serveur ne doit pas le remettre à zéro par défaut ; si le client envoie une valeur vide autorisée, le serveur doit reconnaître cette intention. has_param() permet de distinguer les deux situations. Construire un tableau avec absence, chaîne vide, null et texte normal. Pour chacune, décider clairement ce que l’API promet. Ce contrat évite des pertes de données dans les interfaces d’administration et de synchronisation.

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
if ( $request->has_param( 'note' ) ) {
    $note = $request->get_param( 'note' );
    // Traiter la valeur, y compris si elle est null.
}

Décryptage du code et résultat attendu

Le branchement est fondé sur la présence de la clé, pas sur sa vérité logique. C’est différent d’un if ( $request->get_param('note') ).

Exercice guidé pour vérifier la notion

Tester successivement une requête sans note, avec note vide et avec note égale à null et documenter la différence de comportement.

Précautions et limites

La présence d’un champ ne dispense pas de validation. Éviter les tests empty() lorsqu’une chaîne vide ou zéro doit être considéré comme une valeur volontaire.

À ne pas confondre

has_param() teste l’existence ; get_param() fournit la valeur recherchée. Les deux sont souvent nécessaires pour une mise à jour partielle.

Diagnostic avancé

Si une mise à jour efface un champ par accident, vérifier les conditions sur isset(), empty() et has_param() et revoir le contrat d’API.

Choix d’architecture et déploiement

Définir précisément la sémantique d’une valeur absente, vide ou null avant de publier un endpoint d’écriture.

Références officielles WordPress

Bouton retour en haut de la page