Configurar el plugin
Configurar el pluginDefinir la lista de permitidos/denegados para los valores meta

Definir la lista de permitidos/denegados para los valores meta

Podemos recuperar valores meta para entradas personalizadas, usuarios, comentarios y taxonomías (etiquetas y categorías), consultando los campos metaValue (para un único valor) y metaValues (para un array de valores) del tipo correspondiente:

  • 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

También podemos filtrar resultados para entradas personalizadas, usuarios, comentarios y taxonomías (etiquetas y categorías) basándonos en meta, a través del campo de entrada metaQuery.

Tanto para consulta como para filtrado, los valores meta pueden ser públicos o privados. Por ejemplo, el meta de usuario incluye la entrada wp_capabilities, que es privada, mientras que description es pública. Y luego está last_name, que puede ser pública o privada según la aplicación.

El plugin Gato GraphQL no impone qué claves meta son públicas y cuáles privadas; esto debe configurarse explícitamente. Por defecto, la lista de claves meta permitidas está vacía.

Respuesta del valor meta

Al consultar una clave meta cuyo acceso no está permitido en la página de Ajustes correspondiente, la consulta devuelve un error.

Por ejemplo, ejecutando esta consulta:

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

Devuelve:

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

Si la clave meta no existe para el objeto consultado, o su valor está vacío, la respuesta es null. En caso contrario, la respuesta es el valor meta.

Configurar las claves meta permitidas

Esta es la descripción para el módulo "Custom Post Meta". Para los módulos Users, Comments y Taxonomies, el procedimiento es similar.

Debemos configurar la lista de claves meta que se pueden consultar a través de los campos meta.

Cada entrada puede ser:

  • Una regex (expresión regular), si está rodeada por / o #, o
  • La clave meta completa, en caso contrario

Por ejemplo, cualquiera de estas entradas coincide con la clave meta "_edit_last":

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

Hay 2 lugares donde puede realizarse esta configuración, por orden de prioridad:

  1. Personalizado: En la Configuración del Esquema correspondiente
  2. General: En la página de Ajustes

En la Configuración del Esquema aplicada al endpoint, selecciona la opción "Use custom configuration" y luego introduce las entradas deseadas:

Definición de las entradas en la Configuración del Esquema

De lo contrario, se utilizarán las entradas definidas en la pestaña "Schema Custom Post Meta" de los Ajustes:

Definición de las entradas en los Ajustes
Definición de las entradas en los Ajustes

Hay 2 comportamientos, "Allow access" y "Deny access":

  • Allow access: sólo se puede acceder a las entradas configuradas, y no a ninguna otra
  • Deny access: no se puede acceder a las entradas configuradas, pero sí a todas las demás
Definición del comportamiento de acceso
Definición del comportamiento de acceso