Definiowanie dozwolonych wpisów ustawień
Za pomocą modułu Schema Settings możesz pobierać ustawienia witryny (przechowywane w tabeli wp_options), odpytując pola optionValue, optionValues i optionObjectValue.
Pola te mają różne sygnatury:
optionValue: AnyBuiltInScalaroptionValues: [AnyBuiltInScalar]optionObjectValue: JSONObject
Na przykład to query pobiera adres URL witryny:
{
homeURL: optionValue(name: "home")
}Ze względów bezpieczeństwa opcje, które mogą być odpytywane, muszą być jawnie skonfigurowane.
Odpowiedź ustawień
Podczas wykonywania dowolnego pola „optionValue", jeśli dostęp do nazwy opcji nie jest dozwolony w ustawieniach, query zwraca błąd.
Na przykład wykonanie tego query:
{
optionValue(name: "nonExistentOption")
}Zwraca:
{
"errors": [
{
"message": "There is no option with name 'nonExistentOption'",
"extensions": {
"type": "Root",
"id": "root",
"field": "optionValue(name:\"nonExistentOption\")"
}
}
],
"data": {
"option": null
}
}W przeciwnym razie odpowiedzią jest wartość ustawienia o podanej nazwie.
Konfigurowanie dozwolonych opcji
Należy skonfigurować listę nazw opcji, które mogą być odpytywane.
Każdy wpis może być:
- Wyrażeniem regularnym (regex), jeśli jest otoczone znakami
/lub#, lub - Pełną nazwą opcji w przeciwnym razie
Na przykład każdy z tych wpisów pasuje do klucza meta "siteurl":
siteurl/site.*/#site([a-zA-Z]*)#
Istnieją 2 miejsca, w których można przeprowadzić tę konfigurację, w kolejności priorytetu:
- Niestandardowe: w odpowiedniej Konfiguracji Schematu
- Ogólne: na stronie Ustawień
W Konfiguracji Schematu zastosowanej do endpointu wybierz opcję "Use custom configuration" i wprowadź żądane wpisy:

W przeciwnym razie zostaną użyte wpisy zdefiniowane w zakładce „Settings" w Ustawieniach:

Istnieją 2 zachowania: „Allow access" i „Deny access":
- Allow access: dostępne są tylko skonfigurowane wpisy, żadne inne nie mogą być dostępne
- Deny access: skonfigurowane wpisy nie mogą być dostępne, wszystkie inne wpisy mogą

Opcje domyślne
Po zainstalowaniu wtyczki następujące opcje są wstępnie zdefiniowane jako dostępne:
"siteurl""home""blogname""blogdescription""WPLANG""posts_per_page""date_format""time_format""blog_charset"