A tag wp_list_categories é uma tag muito usada nos temas para wordpress, mesmo depois de ter sido introduzida a opção dos menus personalizados. Neste artigo vamos explorar a tag wp_list_categories e mostrar o que você pode fazer com ela.
Normalmente esta tag é usada na sua forma mais simples, ou seja:
wp_list_categories();
Para aproveitar todas as capacidades desta tag temos de usar argumentos. Para isso começamos por definir uma variável para depois aplicarmos na list_categories, vamos chamar a esta variável "argumentos" e esta variável vai ter uma array associativa dentro dela pois queremos aplicar mais do que um valor à variável e não vamos chamar os conteúdos da array com o ID de cada elemento mas sim pelo nome, começando:
$argumentos=array( //aqui adicionaremos os argumentos ); wp_list_categories($argumentos);
Não mostrar o titulo na lista
Esta é um dos usos mais comuns para nós utilizarmos os argumentos dentro desta tag e tudo o que temos que fazer é:
$argumentos=array( 'title_li'=> __( '//aqui podem adicionarem o que desejarem que esteja no titulo da lista' ), );
O que nós estamos a fazer neste pedaço de código em termos de PHP é apenas chamar a chave 'title_li' e estamos a dar-lhe o valor que desejamos, neste caso retirar o que vem por defeito no wordpress.
Listar as categorias por ordem descendente
Por defeito o wordpress coloca as categorias ordenadas por nome e de uma forma ascendente, mas se quisermos contrariar isto e revelar as categorias de uma forma descendente, aplicamos este valor á nossa variável:
$argumentos=array( 'order'=>'DESC', );
Esta chave('order') só aceita dois valores: DESC para revelar as categorias de uma forma descendente e ASC que vem por defeito e as revela numa forma ascendente.
Ordenar as categorias por ID
Todas as categorias que criamos no website têm um nome e a essa categorias também está associado um ID, se não sabem ver qual é este ID vejam o tutorial do Celso que explica como descobrir o ID de uma categoria.
Depois de sabermos isto, e de experimentamos notamos que o list_categories não ordena as categorias por ID mas sim por nome como previamente dito, mas se quisermos ordenar estas por ID também o podemos fazer:
$argumentos=array( 'orderby'=> 'ID', );
Assim as nossas categorias estarão na nossa página ordenadas pelo ID e não pelo nome.
Não esconder categorias vazias
Muitos de vocês já devem ter reparado que se criarmos uma categoria e não introduzimos nada nesta ela não aparecerá na página se não mudarmos a definição que vêm por defeito com o wordpress que é não mostrar as categorias que estejam vazias na página, se quisermos mudar esta definição e mostrar na nossa página as categorias que estejam vazias usamos:
$argumentos=array( 'hide_empty'=> 0, );
Esta chave só aceita valores booleanos como verdadeiro e falso, e é para isso que serve o 0, no PHP o 0 é falso e o 1 verdadeiro, este ultimo é o que vem por defeito com o wordpress tornando hide empty verdadeiro e escondendo todas as categorias que estejam vazias e colocando o 0 revertemos isso.
Mostrar apenas categorias que são filhas de uma categoria
Por defeito o wordpress mostra todas as categorias que criou exceto as que estão vazias, mas se tivermos uma página que contenha o artigos e outra que contenha vídeos e nestas duas páginas queremos ter sidebars diferentes, e que estas só mostrem as categorias que são filhas da categoria-mãe artigos, assumindo que o ID dessa categoria é 6 usamos:
$argumentos=array( 'child_of'=> 6, );
Com este pedaço de código dizemos ao wordpress que na chave child_of só quero que ele mostre as categorias que são filhas da categoria que têm o ID de 6.
Excluir categorias
Caso tenham por exemplo categorias que contenham artigos premium no vosso website e queiram esconder estas categorias só permitindo quem tem conta premium ver também o podem fazer utilizando o chave exclude:
$argumentos=array( 'exclude'=> 5, );
Com este código o wordpress sabe que quando listar as categorias na página vai ter que excluir a que tem o ID de 5 dessa lista pois esta foi a categoria especificada na chave exclude.
Se quiserem excluir mais que uma categoria só têm que separar os ID's com virgulas:
$argumentos=array( 'exclude'=> 5,4,7, );
Como podem ver no final têm que colocar a virgula na mesma para o PHP não dar um erro.
Usando tudo Junto e aplicando ao list_categories
<?php $argumentos=array( 'exclude'=--> 5,4,7, 'title_li'=> __( '//aqui podem adicionarem o que desejarem que esteja no titulo da lista' ), 'order'=>'DESC', 'orderby'=> 'ID', 'hide_empty'=> 0, 'child_of'=> 7, ); wp_list_categories($argumentos); ?>
Como podem ver esta tag do wordpress normalmente não é muito utilizada com estes argumentos e pode ser muito mais enriquecida e moldada com eles. Recomendamos também uma visita ao codex do wordpress para ler a documentação oficial desta tag.
Espero que este artigo seja útil e se tiverem alguma dúvida deixem um comentário 🙂
Info: Quer adicionar código nos comentários? Por favor use as tags <pre><code> ... </code></pre>
Comentários
Sem comentários até ao momento. Seja o primeiro a comentar!