Configurare il plugin
Configurare il pluginDefinire la lista di consentiti/negati per i valori meta

Definire la lista di consentiti/negati per i valori meta

Possiamo recuperare i valori meta per i post personalizzati, gli utenti, i commenti e le tassonomie (tag e categorie), interrogando i campi metaValue (per un singolo valore) e metaValues (per un array di valori) del tipo corrispondente:

  • Post.metaValue
  • Post.metaValues
  • GenericCustomPost.metaValue
  • GenericCustomPost.metaValues
  • User.metaValue
  • User.metaValues
  • Comment.metaValue
  • Comment.metaValues
  • PostTag.metaValue
  • PostTag.metaValues
  • PostCategory.metaValue
  • PostCategory.metaValues
  • GenericTag.metaValue
  • GenericTag.metaValues
  • GenericCategory.metaValue
  • GenericCategory.metaValues

Possiamo anche filtrare i risultati per i post personalizzati, gli utenti, i commenti e le tassonomie (tag e categorie) in base ai meta, tramite il campo di input metaQuery.

Sia per l'interrogazione che per il filtraggio, i valori meta possono essere pubblici o privati. Ad esempio, i meta utente includono la voce wp_capabilities, che è privata, mentre description è pubblica. E poi c'è last_name, che può essere pubblica o privata a seconda dell'applicazione.

Il plugin Gato GraphQL non impone quali chiavi meta siano pubbliche e quali private; questo deve essere configurato esplicitamente. Per impostazione predefinita, l'elenco delle chiavi meta consentite è vuoto.

Risposta del valore meta

Quando si interroga una chiave meta il cui accesso non è consentito nella corrispondente pagina delle Impostazioni, la query restituisce un errore.

Ad esempio, eseguendo questa query:

{
  post(by: { id: 1 }) {
    id
    metaValue(key: "nothingHere")
  }
}

Restituisce:

{
  "errors": [
    {
      "message": "There is no meta with key 'nothingHere'",
      "extensions": {
        "type": "Post",
        "id": 1,
        "field": "metaValue(key:\"nothingHere\")"
      }
    }
  ],
  "data": {
    "post": {
      "id": 1,
      "metaValue": null
    }
  }
}

Se la chiave meta non esiste per l'oggetto interrogato, o se il suo valore è vuoto, la risposta è null. Altrimenti, la risposta è il valore meta.

Configurare le chiavi meta consentite

Questa è la descrizione del modulo "Custom Post Meta". Per i moduli Users, Comments e Taxonomies, la procedura è simile.

Dobbiamo configurare l'elenco delle chiavi meta che possono essere interrogate tramite i campi meta.

Ogni voce può essere:

  • Una regex (espressione regolare), se è racchiusa tra / o #, oppure
  • La chiave meta completa, negli altri casi

Ad esempio, una qualsiasi di queste voci corrisponde alla chiave meta "_edit_last":

  • _edit_last
  • /_edit_.*/
  • #_edit_([a-zA-Z]*)#

Ci sono 2 punti in cui questa configurazione può essere effettuata, in ordine di priorità:

  1. Personalizzata: Nella Configurazione di Schema corrispondente
  2. Generale: Nella pagina delle Impostazioni

Nella Configurazione di Schema applicata all'endpoint, seleziona l'opzione "Use custom configuration" e poi inserisci le voci desiderate:

Definizione delle voci nella Configurazione di Schema

Altrimenti, verranno utilizzate le voci definite nella scheda "Schema Custom Post Meta" delle Impostazioni:

Definizione delle voci nelle Impostazioni
Definizione delle voci nelle Impostazioni

Ci sono 2 comportamenti, "Allow access" e "Deny access":

  • Allow access: solo le voci configurate sono accessibili, e nessun'altra
  • Deny access: le voci configurate non sono accessibili, tutte le altre voci lo sono
Definizione del comportamento di accesso
Definizione del comportamento di accesso