Definire le voci consentite delle impostazioni
Con il modulo Schema Settings, puoi recuperare le impostazioni del sito (memorizzate nella tabella wp_options), interrogando i campi optionValue, optionValues e optionObjectValue.
Questi campi hanno una firma diversa:
optionValue: AnyBuiltInScalaroptionValues: [AnyBuiltInScalar]optionObjectValue: JSONObject
Ad esempio, questa query recupera l'URL del sito:
{
homeURL: optionValue(name: "home")
}Per motivi di sicurezza, le opzioni che possono essere interrogate devono essere configurate esplicitamente.
Risposta delle impostazioni
Durante l'esecuzione di un campo "optionValue", se l'accesso al nome dell'opzione non è consentito nelle Impostazioni, la query restituisce un errore.
Ad esempio, l'esecuzione di questa query:
{
optionValue(name: "nonExistentOption")
}Restituisce:
{
"errors": [
{
"message": "There is no option with name 'nonExistentOption'",
"extensions": {
"type": "Root",
"id": "root",
"field": "optionValue(name:\"nonExistentOption\")"
}
}
],
"data": {
"option": null
}
}Altrimenti, la risposta è il valore dell'impostazione con il nome specificato.
Configurare le opzioni consentite
Dobbiamo configurare l'elenco dei nomi delle opzioni che possono essere interrogate.
Ogni voce può essere:
- Una regex (espressione regolare), se è racchiusa tra
/o#, oppure - Il nome completo dell'opzione, altrimenti
Ad esempio, una qualsiasi di queste voci corrisponde alla chiave meta "siteurl":
siteurl/site.*/#site([a-zA-Z]*)#
Ci sono 2 punti in cui questa configurazione può essere effettuata, in ordine di priorità :
- Personalizzato: nella corrispondente Configurazione dello Schema
- Generale: nella pagina delle Impostazioni
Nella Configurazione dello Schema applicata all'endpoint, seleziona l'opzione "Use custom configuration" e poi inserisci le voci desiderate:

Altrimenti, verranno utilizzate le voci definite nella scheda "Settings" delle Impostazioni:

Ci sono 2 comportamenti, "Allow access" e "Deny access":
- Allow access: solo le voci configurate sono accessibili, nessun'altra lo è
- Deny access: le voci configurate non sono accessibili, tutte le altre lo sono

Opzioni predefinite
Quando il plugin è installato, le seguenti opzioni sono predefinite come accessibili:
"siteurl""home""blogname""blogdescription""WPLANG""posts_per_page""date_format""time_format""blog_charset"