Configurar o plugin
Configurar o pluginDefinindo a lista de permitidos/negados para valores meta

Definindo a lista de permitidos/negados para valores meta

Podemos recuperar valores meta para posts personalizados, usuários, comentários e taxonomias (tags e categorias), consultando os campos metaValue (para um único valor) e metaValues (para um array de valores) do tipo correspondente:

  • 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

Também podemos filtrar resultados de posts personalizados, usuários, comentários e taxonomias (tags e categorias) com base em meta, por meio do campo de entrada metaQuery.

Tanto para consulta quanto para filtragem, os valores meta podem ser públicos ou privados. Por exemplo, os meta de usuário incluem a entrada wp_capabilities, que é privada, enquanto description é pública. E há também last_name, que pode ser pública ou privada dependendo da aplicação.

O plugin Gato GraphQL não impõe quais chaves meta são públicas e quais são privadas; isso deve ser configurado explicitamente. Por padrão, a lista de chaves meta permitidas está vazia.

Resposta do valor meta

Ao consultar uma chave meta cujo acesso não é permitido na página de Configurações correspondente, a query retorna um erro.

Por exemplo, ao executar esta query:

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

Retorna:

{
  "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 a chave meta não existir para o objeto consultado, ou se seu valor estiver vazio, a resposta é null. Caso contrário, a resposta é o valor meta.

Configurando as chaves meta permitidas

Esta é a descrição do módulo "Custom Post Meta". Para os módulos Users, Comments e Taxonomies, o procedimento é similar.

Devemos configurar a lista de chaves meta que podem ser consultadas por meio dos campos meta.

Cada entrada pode ser:

  • Uma regex (expressão regular), se estiver entre / ou #, ou
  • A chave meta completa, nos demais casos

Por exemplo, qualquer uma dessas entradas corresponde à chave meta "_edit_last":

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

Há 2 locais onde essa configuração pode ser feita, em ordem de prioridade:

  1. Personalizada: Na Configuração de Schema correspondente
  2. Geral: Na página de Configurações

Na Configuração de Schema aplicada ao endpoint, selecione a opção "Use custom configuration" e insira as entradas desejadas:

Definindo as entradas na Configuração de Schema

Caso contrário, serão utilizadas as entradas definidas na aba "Schema Custom Post Meta" das Configurações:

Definindo as entradas nas Configurações
Definindo as entradas nas Configurações

Há 2 comportamentos, "Allow access" e "Deny access":

  • Allow access: somente as entradas configuradas podem ser acessadas, nenhuma outra
  • Deny access: as entradas configuradas não podem ser acessadas, todas as demais entradas podem
Definindo o comportamento de acesso
Definindo o comportamento de acesso