Olá pessoal, hoje eu venho aqui para mostrar para vocês como Listar Posts em Grupos filtrados por Categorias, as vezes quando a demanda de post’s do site são poucas ou mesmo por uma necessidade específica do propria cliente, esse formato de listagem é a melhor opção.
Então por causa dessas necessidades eu desenvolvi um loop personalizado, vocês podem aplicar essa mesma aplicação para a categoria padrão do proprio WordPress ou utilizar para uma taxonomia personalizada.
Para esse modelo, eu tive que utilizar duas fuções padrões do proprio WordPress para realizar essas verificações, que são: get_object_taxonomies() e get_terms().
Abaixo, eu vou deixar o modelo que eu desenvolvi e que vamos utilizar nesse tutorial:
Agora eu vou detalhar para você, o que foi feito em cada linha, para simplificar para vocês:
De início eu criei um variável chamada $post_type aplicando o valor ‘post’, eu apliquei dessa maneira somente para simplificar nesse tutorial, assim ficará mais fácil a visualização do mesmo.
Dentro do meu primeiro foreach eu vou determinar os primeiros parâmetros para o get_terms(), que vão ser os valores que estão vindo da nossa função get_object_taxonomies().
A forma de ordenação orderby e order eu dexei listando de forma Ascendente e por Nome, também declarei que o “hide_empty = 1” isso significa que vai listar somente categorias com post’s cadastrados, porque se eu passar o valor “hide_empty = 0” ele vai listar todas as categorias, até mesmo as que estão “vazias”.
“Para mais especificações é só acessar o link que eu aplique nas funções.”
Agora já com os termos da categoria/taxonomia estão declaradas, vamos para a parte do loop dos posts. Mas antes, como vocês podem ver eu que apliquei outro um foreach, ele vai ser o responsável pela criação dos grupos(blocos).
Vamos criar os argumentos da nossa Array para a criação do WP_Query, dentro dela vamos aplicar nossa variável $post_type que contém o valor “post” e a quantidade desejada de posts que vão ser exibidos dentro de cada grupo.
Eu apliquei o valor “posts_per_page => -1” isso significa que ele vai listar todos os posts cadastrados dentro categoria, mas para fixar um outro valor desejado é só alterar o mesmo: Exemplo “posts_per_page => 6”.
Essa é a mais importante aonde iremos aplicar os argumentos dentro de “tax_query”, ela a responsável pela “filtragem” dos posts+categoria. Eu estou pegando o valor de $taxonomy e comparando o slug da minha categoria se é a mesma e assim aplicando dentro do meu grupo correto.
Pronto!!! Agora estamos quase finalizando o nosso processo, então vamos para a parte final do tutorial, que é a criação do nosso loop que vai gerar nossos post’s.
Abaixo, eu deixei um loop bem básico para facilitar, mas essa parte é totalmente personalizada para cada necessidade, aqui eu vou somente criar um grupo com alguns conteúdos.
Legenda de cada parte do loop:
- DL – ID padrão box-loop-list- junto com a string $term->slug; assim no frontend ficará mais simples a visualização e também a aplicação de algum estilo personalizado que você desejar;
- DT – Apliquei uma tag H3 junto com a string $term->name; para que o nome da categoria fique sempre acima do bloco de post’s;
- DD – Fiz uma verificação se existe ou não um thumbnail cadastrado no meu post e também terá o título junto com o link do post;
Abaixo, eu vou deixar para vocês como será exibido no front-end:
Espero que vocês tenham gostado desse tutorial e até breve 🙂
Por favor, se você gostou deixe seu like e também se possível compartilhe.