Essa função é mais completa do que get_categories(). Ela permite receber qualquer tipo de taxonomia do post: categorias, tags ou categorias personalizadas.
Uma função que permite obter (e exibir no site) elementos de taxonomias (categorias, tags ou taxonomias personalizadas) e informações sobre eles. Se você precisar obter o elemento de taxonomia atual, use as funções get_query_var() (com o valor do parâmetro igual a term – dessa forma, você obtém o rótulo do elemento de taxonomia atual) e get_term_by() (com o valor do primeiro parâmetro igual a lesma).
get_terms( $args = array(), $deprecated = '' )
De padrão, a função retorno a array WP_Term, que contem o seguinte
Se o parâmetro de campos não for alterado, a função retornará uma matriz de objetos WP_Term, cada um contendo as seguintes informações sobre o elemento de taxonomia.
term_id – ID do elemento de categoria/tag/taxonomia nome nome lesma – rótulo
term_group – valor term_group do banco de dados (sem uso especial ainda, principalmente em plugins)
term_taxonomy_id – ID de taxonomia
taxonomia – o nome da taxonomia
description – descrição do elemento (pode ser preenchido no painel de administração ao criar e editar)
parent – ID do elemento pai
count – o número de entradas
order – número do pedido para classificação manual
Exemplos de uso da função get_terms()
$categories = get_terms( array( 'taxonomy' => 'category' ) );
print_r( $categories );
/*
Resultado:
Array ( [0] => stdClass Object ( [term_id] => 1 [name] => Posts [slug] => notes [term_group] => 0 [menu_order] => 0 [term_taxonomy_id] => 1 [taxonomy] => category [description] => [parent] => 0 [count] => 7 ) [1] => stdClass Object ( [term_id] => 4 [name] => Notícias [slug] => news [term_group] => 0 [menu_order] => 0 [term_taxonomy_id] => 4 [taxonomy] => category [description] => [parent] => 0 [count] => 2 ) [2] => stdClass Object ( [term_id] => 11 [name] => Novidades [slug] => updates [term_group] => 0 [menu_order] => 0 [term_taxonomy_id] => 11 [taxonomy] => category [description] => [parent] => 4 [count] => 1 ) )
*/
$categories = get_terms( array( 'taxonomy' => 'category', 'fields' => 'ids' ) );
print_r( $categories );
/*
Resultado:
Array ( [0] => 1 [1] => 4 [2] => 11 )
*/
$categories = get_terms( array( 'taxonomy' => 'category', 'fields' => 'names' ) );
print_r( $categories );
/*
Resultado:
Array ( [0] => Новости [1] => Заметки )
*/
Como mostrar somente algumas certas categorias
$args = array(
'taxonomy' => 'category',
'include' => array( 1, 4 )
);
$categories = get_terms( $args );
Além do include temos outros parâmetors. Quais?
um ou mais números referentes os identificadores de categorias que não devem ser exibidas
exclude_tree
Este parâmetro vai excluir as categorias e os filhos dessas categorias também
orderby
vamos ordenar as categorias por
id — padrão
parent – pelo ID da categoria pai
count – pela quantidade dos posts dentro da categoria
name – pelo nome
slug – pelo slug
term_group – pelo term_group na tabela wp_terms dentro do banco de dadosi
include – já mostrei o exemplo em cima
meta_velue e meta_value_num – pelo valor do campo personalizado
none – não ordenar
order
ASC — classifica do valor mais baixo para o valor mais alto
DESC — classifica do valor mais alto para o valor mais baixo
hide_empty
true – padrão
false
O que é name__like e como usá-lo?
$tags = get_terms( array( 'taxonomy' => 'post_tag', 'name__like' => 'Sol' ) );
foreach( $tags as $tag ){
echo $tag->name . ' ';
}
Ok, agora vamos ver um exemplo de uso. Vamos receber 3 categorias com maior quantidade de posts
$args = array(
'taxonomy' => 'category',
'number' => 3,
'orderby' => 'count',
'order' => 'DESC',
);
$terms = get_terms( $args );
if( $terms ){
echo '<ul>';
foreach( $terms as $term ) {
echo '<li>' . $term->name . ' (' . $term->count . ')</li>';
}
echo '</ul>';
}