Définir les entrées autorisées des paramètres
Avec le module Schema Settings, vous pouvez récupérer les paramètres du site (stockés dans la table wp_options), en interrogeant les champs optionValue, optionValues et optionObjectValue.
Ces champs ont une signature différente :
optionValue: AnyBuiltInScalaroptionValues: [AnyBuiltInScalar]optionObjectValue: JSONObject
Par exemple, cette requête récupère l'URL du site :
{
homeURL: optionValue(name: "home")
}Pour des raisons de sécurité, les options pouvant être interrogées doivent être configurées explicitement.
Réponse des paramètres
Lors de l'exécution d'un champ "optionValue", si l'accès au nom de l'option n'est pas autorisé dans les Paramètres, la requête retourne une erreur.
Par exemple, l'exécution de cette requête :
{
optionValue(name: "nonExistentOption")
}Retourne :
{
"errors": [
{
"message": "There is no option with name 'nonExistentOption'",
"extensions": {
"type": "Root",
"id": "root",
"field": "optionValue(name:\"nonExistentOption\")"
}
}
],
"data": {
"option": null
}
}Sinon, la réponse est la valeur du paramètre portant le nom spécifié.
Configurer les options autorisées
Nous devons configurer la liste des noms d'options pouvant être interrogés.
Chaque entrée peut être :
- Une regex (expression régulière), si elle est entourée de
/ou#, ou - Le nom complet de l'option, sinon
Par exemple, l'une ou l'autre de ces entrées correspond à la clé meta "siteurl" :
siteurl/site.*/#site([a-zA-Z]*)#
Il y a 2 endroits où cette configuration peut être effectuée, par ordre de priorité :
- Personnalisé : dans la Configuration du Schéma correspondante
- Général : dans la page des Paramètres
Dans la Configuration du Schéma appliquée à l'endpoint, sélectionnez l'option "Use custom configuration" puis saisissez les entrées souhaitées :

Sinon, les entrées définies dans l'onglet "Settings" des Paramètres seront utilisées :

Il y a 2 comportements, "Allow access" et "Deny access" :
- Allow access : seules les entrées configurées sont accessibles, aucune autre ne l'est
- Deny access : les entrées configurées ne sont pas accessibles, toutes les autres le sont

Options par défaut
Lorsque le plugin est installé, les options suivantes sont prédéfinies comme accessibles :
"siteurl""home""blogname""blogdescription""WPLANG""posts_per_page""date_format""time_format""blog_charset"