Valores Meta
Para buscar e filtrar por valores meta, as suas chaves meta devem ser adicionadas à lista de permissões.
Podemos recuperar valores meta para custom posts, 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
Consultando múltiplos valores meta de uma vez
Podemos consultar múltiplas entradas meta como um objeto JSON, via campo meta (para os mesmos tipos acima).
O objeto JSON possui:
- Chave: a chave meta
- Valor: uma lista de valores (se o valor meta for um escalar, é recuperado como uma lista de 1 elemento)
Consultando chaves meta
Podemos obter a lista de todas as chaves meta permitidas na entidade, via campo metaKeys (para os mesmos tipos acima).
Este campo é um elemento de dados "sensível".
Filtrando por meta
Custom posts, comentários, usuários e taxonomias (tags e categorias) também podem ser filtrados por meta, usando o input metaQuery.
Este input oferece uma melhoria em relação a como os argumentos meta_query são fornecidos (para as funções get_posts, get_users, etc.), pois as validações de tipo são aplicadas rigorosamente no schema GraphQL, e apenas as combinações que fazem sentido são expostas.
Isso é realizado usando o campo input "oneof" compareBy, que oferece 4 possibilidades. Dependendo da opção escolhida, diferentes operadores podem ser usados para a comparação:
Input compareBy | Operadores possíveis |
|---|---|
1. key | EXISTSNOT EXISTS |
2. numericValue | =!=>>=<\<= |
3. stringValue | =!=LIKENOT LIKEREGEXPNOT REGEXPRLIKE |
4. arrayValue | INNOT INBETWEENNOT BETWEEN |
Além disso, ao comparar por key, não é necessário fornecer o input value.
Podemos passar vários itens sob metaQuery, e decidir se realizar um AND ou OR de suas condições passando o input relation no primeiro item da lista.