Como filtrar por meta de relação

Criar consulta SQL no Query Builder

Comece criando uma consulta personalizada no JetEngine Query Builder. Vá para WordPress Dashboard> JetEngine> Query Builder e pressione “ Adicionar novo ”. 

Dê um nome à consulta, uma descrição , se desejar, e defina o tipo de consulta como “Consulta SQL/AI”.

tipo de consulta sql aiNa seção Consulta SQL personalizada , adicione uma tabela “jet_rel_default_meta” From como a fonte de extração dos valores dos metacampos de relação.

cláusula de consulta de metacampos de relaçãoLembre-se de que a tabela “jet_rel_default_meta” deve ser selecionada se você mantiver Registrar tabela de banco de dados separada nas configurações de Relação desabilitada.

registrar alternância de tabela db separadaSe você tiver essa alternância no estado habilitado, uma tabela separada será criada no banco de dados, que tem um nome diferente como “jet_rel_81_meta”, onde “81” é substituído pelo ID de relação do seu site. 

Portanto, neste caso, a respectiva tabela deverá ser selecionada no campo Da Tabela .

ID da relaçãoEm seguida, adicione o Where (query Clause) , que especifica o metacampo da relação pela qual a filtragem deve ser realizada. Selecione “meta_key” como uma coluna, que é “Igual” ( campo Comparar ) ao nome do metacampo de relação mencionado no campo Valor .

cláusula de meta consulta de relaçãoA cláusula a seguir será necessária se a opção Registrar tabela de banco de dados separada estiver desabilitada. 

Neste caso, o valor “rel_id” deve ser definido como Column , “Equal” como operador Compare , e o ID da relação precisa ser especificado na cláusula como Value . Como foi mostrado anteriormente, você pode encontrar o ID da relação na URL da página de edição da relação .

Além disso, lembre-se de alterar a opção Tipo para “Numérico”.

cláusula de consulta de identificação de relaçãoNa visualização dos resultados da consulta, você pode ver que a coluna “meta_value” armazena o valor do metacampo Relação com base no qual o filtro será construído.

valor meta na janela de resultados de visualizaçãoQuando a consulta for concluída, você poderá salvá-la.

Faça filtro em JetSmartFilters

Agora prossiga com a criação de um filtro usando o plugin JetSmartFilters . 

Vá para Painel do WordPress > Filtros Inteligentes > Adicionar Novo e selecione o tipo de filtro necessário. No caso descrito, escolhemos um tipo de filtro “Rádio” .

tipo de filtro de rádio selecionadoEm seguida, escolha uma fonte de dados “JetEngine Query Builder” e selecione uma consulta personalizada da etapa anterior.

propriedade da qual obter o valor e a propriedade da qual obter o rótulo devem ser preenchidas com “meta_value”.

construtor de consultas jetengine como fonte de dados de filtroA última configuração na configuração do filtro é a Variável de Consulta , pela qual a filtragem é realizada. Deve ser “meta_value” também.

valor meta definido como variável de consultaA configuração do filtro está concluída; ele pode ser salvo agora.

Criar consulta SQL no Query Builder

Nesta fase, precisamos criar outra consulta personalizada que será a fonte do modelo de listagem usado no widget Listing Grid para mostrar os resultados filtrados.

Vá para WordPress Dashboard > JetEngine > Query Builder e adicione uma nova consulta personalizada de “SQL/AI Query” Query Type .

tipo de consulta sql aiEscolha uma tabela onde esteja armazenado um item da relação que será filtrado. 

No caso descrito, é o CCT. Portanto, uma tabela CCT é selecionada adequadamente. Se você deseja filtrar um tipo de post usado na relação, escolha uma tabela “posts”.

Depois disso, ative o botão Usar junção .

usar alternância de junçãoDepois de ativar a alternância, escolha “Inner Join” como tipo de junção e junte-se à tabela “jet_rel_default_meta”.

Aviso

Lembre-se de que pode ser necessário selecionar uma tabela personalizada para uma relação se você ativar Registrar tabela de banco de dados separada nas configurações ao criar uma relação.

Quando o campo da coluna da tabela atual deverá ser preenchido com uma opção correspondente ao item da relação que será filtrado. 

No caso fornecido, será filtrado um CCT que seja item pai na relação, por isso é escolhido o “parent_object_id”.

É igual a outra coluna da tabela deve ser definida como “_ID” ou “ID” do CCT caso uma tabela “posts” tenha sido adicionada anteriormente.

relação junção internaEm seguida, adicione um item na seção Onde (cláusulas de consulta) e especifique uma coluna “jet_rel_default_meta.meta_key” como “Igual” ( campo Comparar ) ao nome do metacampo Relação ( campo Valor ). serão puxados que possuem um valor no metacampo da relação.

valor no metacampo da cláusula de consulta de relaçãoSe você usar um tipo de postagem em vez de um CCT na relação que será filtrada, também poderá ser necessário especificar um tipo de postagem na consulta. Você deve selecionar “posts.post_type” para ser “Igual” a um slug de tipo de postagem desejado.

cláusula de consulta de tipo de postagemA consulta personalizada é feita neste ponto, para que possa ser salva.

Criar modelo de listagem para consulta personalizada

Vá para WordPress Dashboard > JetEngine > Listings e clique no botão “ Adicionar novo ”. 

fonte da listagem deve ser definida como “Query Builder” e a consulta criada na etapa anterior deve ser escolhida no campo Consulta .

Preencha o nome do item da listagem e escolha a visualização da listagem . Pressione o botão “ Criar item de listagem ”.

consulta de relação sql como fonte de listagemNo modelo de listagem , você pode adicionar um widget de campo dinâmico para extrair dados da consulta personalizada.

Aviso

Observe que você precisa selecionar campos na seção Consulta para gerar dados no modelo de listagem para uma consulta personalizada.

widget de campo dinâmico de consulta de nome de trabalhoVocê pode usar um campo de objeto personalizado/meta-campo/chave de repetidor “meta_value” para mostrar um valor de um meta-campo de relação .

valor dinâmico do metacampo de relaçãoDepois de adicionar todos os outros campos necessários, o modelo de listagem pode ser salvo.

Verifique a filtragem no front-end

Adicione o filtro e o widget Listing Grid a uma página para verificar o resultado.

filtro de rádio de meta consulta de relação no elementorNo widget Grade de Listagem , selecione um modelo de Listagem que foi criado em uma etapa anterior.

listagem da relação sql cct em uma grade de listagemA configuração está concluída; verifique a filtragem no front-end.

Quando uma opção é escolhida no filtro, um respectivo item com o valor filtrado no metacampo Relação é exibido na Grade de Listagem de acordo.

grade de listagem e filtro no front-end

Agora você já sabe como construir consultas SQL e um filtro para criar filtragem por metacampo de relação em seu site usando os plugins JetEngine e JetSmartFilters .

Índice