Gênios Academy
Dicas e tutoriais para amantes do wordpress

Como criar filtro visual baseado em consulta SQL com Open AI
Adicionar metacampos ao tipo de postagem
Antes de começarmos a criar a consulta personalizada, vamos ver quais metacampos podem ser usados. No exemplo descrito foram criados dois metacampos, um é o metacampo ‘mediaaa’ do tipo “Media” Field , do qual é extraída uma imagem para mostrar uma lista de opções no filtro, e o ‘textarea-pages’ meta campo, pelo qual a filtragem deve ser realizada.
Crie consulta SQL personalizada com IA
Depois que os metacampos forem adicionados a um tipo de postagem e preenchidos nas postagens, vá para WordPress Dashboard > JetEngine > Query Builder .
Crie uma nova consulta, preencha o nome da consulta e selecione o tipo de consulta “Consulta SQL/AI” na seção Configurações gerais .
Vá para a Consulta SQL personalizada e ative o recurso de modo Avançado/AI .
Clique no botão “ Gerar consulta com IA ” para acessar os prompts. A ideia é que precisamos dizer à IA que existem dois campos com nomes específicos dos quais precisamos que valores únicos sejam recuperados, então trabalharemos na escrita de um prompt para esta solicitação. Você pode escrever o prompt de acordo com como deseja que as postagens, termos, itens CCT, etc., sejam consultados.
” alt=”gerar consulta com botão ai” data-src=”https://crocoblock.com/knowledge-base/wp-content/uploads/2023/07/Screenshot_3.png” />Aqui estão os exemplos de prompts que usamos para criar uma consulta SQL:
Post has fields 'textarea-pages' and 'mediaaa'. Return distinct values from 'textarea-pages' and values from 'mediaaa'.
” alt=”descrição da primeira consulta” data-src=”https://crocoblock.com/knowledge-base/wp-content/uploads/2023/07/Screenshot_4.png” />Nesta consulta, deveríamos ter mencionado que esses metacampos são da mesma postagem.
Agora temos esta consulta SQL que não é exatamente o que precisamos:
SELECT DISTINCT meta_value FROM {prefix}postmeta WHERE meta_key = 'textarea-pages'
UNION
SELECT meta_value FROM {prefix}postmeta WHERE meta_key = 'mediaaa'
Então aqui está outra versão do prompt:
Post has meta fields 'textarea-pages' and 'mediaaa'. Return distinct values from 'textarea-pages' and values from 'mediaaa' for each post.
Essa solicitação gera a seguinte consulta:
SELECT DISTINCT {prefix}postmeta.meta_value AS textarea_pages, {prefix}postmeta2.meta_value AS mediaaa
FROM {prefix}posts
INNER JOIN {prefix}postmeta ON {prefix}posts.ID = {prefix}postmeta.post_id AND {prefix}postmeta.meta_key = 'textarea-pages'
INNER JOIN {prefix}postmeta AS {prefix}postmeta2 ON {prefix}posts.ID = {prefix}postmeta2.post_id AND {prefix}postmeta2.meta_key = 'mediaaa'
Esta consulta está correta, mas também deve ser mencionada a informação de que o metacampo ‘textarea-pages’ não deve estar vazio.
Então aqui está outro:
Post has meta fields 'textarea-pages' and 'mediaaa'. Return distinct values from 'textarea-pages' and values from 'mediaaa' for each post. 'textarea-pages' field must not be empty.
Esta solicitação gera esta consulta:
SELECT DISTINCT {prefix}postmeta.meta_value AS textarea_pages, {prefix}postmeta2.meta_value AS mediaaa
FROM {prefix}posts
INNER JOIN {prefix}postmeta ON {prefix}posts.ID = {prefix}postmeta.post_id AND {prefix}postmeta.meta_key = 'textarea-pages' AND {prefix}postmeta.meta_value != ''
LEFT JOIN {prefix}postmeta AS {prefix}postmeta2 ON {prefix}posts.ID = {prefix}postmeta2.post_id AND {prefix}postmeta2.meta_key = 'mediaaa'
WHERE {prefix}posts.post_type = 'post' AND {prefix}posts.post_status = 'publish'
Nesse caso, a OpenAI decidiu que consultaríamos um tipo de postagem ‘post’, por isso é melhor especificar de qual tipo de postagem as postagens serão extraídas.
Então aqui está a versão final:
Post type 'page' has meta fields 'textarea-pages' and 'mediaaa'. Return distinct values from 'textarea-pages' and values from 'mediaaa' for each post. 'textarea-pages' field must not be empty.
SELECT DISTINCT {prefix}postmeta.meta_value AS textarea_pages, {prefix}postmeta2.meta_value AS mediaaa
FROM {prefix}posts
INNER JOIN {prefix}postmeta ON {prefix}posts.ID = {prefix}postmeta.post_id AND {prefix}postmeta.meta_key = 'textarea-pages'
INNER JOIN {prefix}postmeta AS {prefix}postmeta2 ON {prefix}posts.ID = {prefix}postmeta2.post_id AND {prefix}postmeta2.meta_key = 'mediaaa'
WHERE {prefix}posts.post_type = 'page' AND {prefix}posts.post_status = 'publish' AND {prefix}postmeta.meta_value != ''
ORDER BY {prefix}posts.ID ASC;
O resultado é:
Neste ponto, a consulta corresponde à ideia. Além disso, você pode adicionar edições finais à consulta. Por exemplo, altere a ordem.
A propósito, a palavra ‘distinta’ usada nos prompts de consulta vem do vocabulário do SQL, mas a OpenAI entenderá a palavra ‘único’ em vez dela.
Agora pressione o botão “ Usar esta consulta ”.
” alt=”use este botão de consulta” data-src=”https://crocoblock.com/knowledge-base/wp-content/uploads/2023/07/Screenshot_6.png” />Opcionalmente, você pode ativar o botão “ Visualizar resultados ” para garantir que a consulta forneça os valores de acordo com a solicitação.
” alt=”alternar resultados de visualização” data-src=”https://crocoblock.com/knowledge-base/wp-content/uploads/2023/07/Screenshot_7.png” />
Criar filtro visual
Depois que a consulta personalizada for salva, crie um novo filtro em WordPress Dashboard > Smart Filters > Add New . Selecione o tipo de filtro “Visual” . A fonte de dados deve ser definida como “JetEngine Query Builder”. No campo Selecionar consulta , você deve escolher a consulta personalizada que acabou de ser criada usando IA.
Preencha o restante dos campos.
O campo Propriedade para obter o valor é preenchido com o valor ‘textarea_pages’ para filtrar pelos valores deste metacampo.
Você também pode usar o mesmo valor no campo Propriedade para obter o rótulo de caso queira mostrar os valores deste campo como um rótulo da opção do filtro. Uma opção “Imagem” foi selecionada no campo Tipo , para que possamos especificar o nome do campo do qual obter a imagem.
Por fim, você pode selecionar o Comportamento do Filtro Visual , “Checkbox” ou “Rádio”, para definir se o usuário pode marcar múltiplas opções no filtro ou apenas uma.
Em seguida, insira o nome da Variável de Consulta . Deve ser o nome do campo pelo qual será feita a filtragem.
Pressione o botão “ Atualizar ” para salvar o filtro.
Configurar filtro visual no front-end
Vamos configurar o filtro para o widget/bloco Listing Grid no front end.
Editor de Gutenberg
Adicione um bloco visual à página e selecione o filtro visual que você criou. Você pode usar um bloco “Listing Grid” como provedor neste filtro para configuração.
Em seguida, adicione o bloco Listing Grid à página e selecione um modelo de listagem para o tipo de postagem em que as postagens precisam ser filtradas.
No front end, você pode ver que as postagens da listagem são filtradas usando o Filtro Visual .
Editor Elementor
Adicione o widget Filtro Visual à página e selecione o Filtro Visual que você acabou de criar. Neste filtro para configuração, você pode usar o widget “JetEngine” como provedor.
Em seguida, adicione o widget Listing Grid à página e selecione um modelo de listagem para o tipo de postagem em que as postagens precisam ser filtradas.
Após salvar a página, você pode conferir o resultado no front end.
Depois que a opção é selecionada no Filtro Visual , a postagem com o valor selecionado no metacampo ‘textarea_pages’ é filtrada de acordo.
Agora você sabe como trazer mais IA para a construção do Filtro Visual JetSmartFilters com base na consulta SQL no Query Builder do plugin JetEngine .