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.metaValuePost.metaValuesGenericCustomPost.metaValueGenericCustomPost.metaValuesUser.metaValueUser.metaValuesComment.metaValueComment.metaValuesPostTag.metaValuePostTag.metaValuesPostCategory.metaValuePostCategory.metaValuesGenericTag.metaValueGenericTag.metaValuesGenericCategory.metaValueGenericCategory.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:
- Personalizada: Na Configuração de Schema correspondente
- 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:

Caso contrário, serão utilizadas as entradas definidas na aba "Schema Custom Post Meta" das 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
