Trabalhando com
Trabalhando comValores Meta

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.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

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 compareByOperadores possíveis
1. keyEXISTS
NOT EXISTS
2. numericValue=
!=
>
>=
<
\<=
3. stringValue=
!=
LIKE
NOT LIKE
REGEXP
NOT REGEXP
RLIKE
4. arrayValueIN
NOT IN
BETWEEN
NOT 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.