Filtragem Dinâmica de Posts sem Plugins no WordPress
A filtragem dinâmica de posts é uma funcionalidade altamente requisitada em sites WordPress. Ela permite que os usuários filtrem conteúdos por categorias, tags ou outros critérios sem precisar recarregar a página. Embora existam muitos plugins que oferecem essa função, é possível implementá-la manualmente com PHP, JavaScript e AJAX. Este guia prático e direto vai te ensinar como criar sua própria filtragem dinâmica de posts sem usar plugins.
Por que Implementar Sem Plugins?
Desempenho Melhorado: Reduz a sobrecarga no site, deixando-o mais rápido.
Flexibilidade: Controle total sobre a funcionalidade e estilo do filtro.
Evita Conflitos: Elimina possíveis conflitos com outros plugins.
Neste tutorial, você criará:
Um formulário de filtros dinâmicos.
Uma consulta personalizada para buscar posts.
Um sistema de carregamento dinâmico dos resultados.
1. Estrutura HTML para os Filtros
Crie o formulário de filtros em um arquivo de template personalizado, como page-listagem.php.
Por que criar um arquivo personalizado?
Um arquivo como page-listagem.php permite que você crie uma página dedicada para listar posts com filtros dinâmicos, sem interferir nos outros templates do tema. Essa abordagem separa o código e facilita a manutenção. Além disso, ela possibilita que você visualize a página diretamente no navegador sem precisar criá-la pelo painel administrativo do WordPress.
Exemplo do Arquivo page-listagem.php
Crie o arquivo page-listagem.php na pasta do tema ativo:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Para que a página seja acessível diretamente pela URL /listagem, você precisará adicionar uma regra de reescrita ao WordPress. Essa configuração criará um endpoint personalizado.
Adicione o seguinte código ao arquivo functions.php:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Após aplicar a função add_rewrite_rule, é necessário regerar o arquivo .htaccess para que as novas regras de reescrita funcionem corretamente. Para isso, você pode:
Acessar o painel administrativo do WordPress.
Ir até Configurações > Links Permanentes.
Clicar no botão Salvar alterações sem modificar nada.
Essa ação atualiza automaticamente o arquivo .htaccess e aplica as novas regras de URL.
Como Funciona?
Reescrita de URL: O código cria uma regra que mapeia /listagem para o parâmetro is_listagem.
Registro de Tag: Registra o parâmetro is_listagem para que o WordPress o reconheça.
Carregamento do Template: Quando a URL corresponde ao endpoint, o arquivo page-listagem.php é carregado automaticamente.
Título Personalizado: Define um título dinâmico para o endpoint usando o filtro document_title_parts.
Flush Automático: Após ativar o tema, as regras de reescrita são atualizadas automaticamente.
Agora você pode acessar a página diretamente pelo link http://seusite.com/listagem sem a necessidade de criar a página no backend.
2. Criando a Função de Filtragem em PHP
No arquivo functions.php do seu tema, adicione a lógica para manipular a filtragem:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Para uma estrutura mais organizada, crie dois arquivos separados:
Arquivo filtragem.js
Crie um arquivo na pasta assets/js do tema (exemplo: /wp-content/themes/seutema/assets/js/filtragem.js) com o seguinte código:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Crie um arquivo na pasta assets/css do tema (exemplo: /wp-content/themes/seutema/assets/css/filtragem.css) com o seguinte código:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Adicione o seguinte código ao functions.php para registrar os arquivos de JavaScript e CSS, garantindo que eles sejam atualizados ao alterar o tema:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Adicione categorias e tags nos seus posts para testar o filtro.
Certifique-se de que as categorias e tags aparecem corretamente no dropdown.
Verifique se os resultados são carregados dinamicamente sem recarregar a página.
Conclusão
Com esta solução, você implementou um sistema de filtragem dinâmica de posts no WordPress sem a necessidade de plugins. Agora, você pode acessar a página diretamente pela URL /listagem sem precisar criá-la no backend. Não se esqueça de regenerar o arquivo .htaccess após aplicar as regras de reescrita. Essa abordagem oferece mais controle e personalização, além de melhorar o desempenho do site.
Se você gostou deste tutorial ou tem dúvidas, deixe um comentário!
Hi, my name is Cesar H. Ribeiro. I’m Brazilian and currently reside in Hortolândia, São Paulo. I’ve been working in Web Development since 2006, specializing in creating custom websites using the WordPress platform. My expertise includes transforming PSD/layouts into custom themes. Over the years, I’ve collaborated with numerous agencies worldwide, including those in Brazil, Australia, the USA, Germany, and Austria.
To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.
Functional
Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes.The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.