Algumas vezes é preciso obter a ID de um termo, veja como fazer isso facilmente e entenda um pouco sobre ID no WordPress.
Se você já usou WP Query por exemplo, deve ter notado que alguns parâmetros precisam usar a ID do termo e não seu nome simples ou slug. Não é uma boa ideia criar códigos informando IDs, já que essa informação não é inerente do termo, isto é, apesar de ser um identificador único do item, não quer dizer que seja atribuído a ele. Assim, você pode se deparar com algo assim:
Adicionei um código à página inicial para listar todos os posts exceto os que estão na categoria ‘Avisos’ de ID igual a 4, em localhost está ok, mas no site, o código não funciona!
É certeza que no site a categoria tem uma ID diferente, então é preciso mudar o código para a ID que a categoria tem lá. A tal ID de número 4 pode ser de uma tag ou taxonomia personalizada, então o código não vai encontrar nenhuma categoria com esta ID. Se é possível usar o nome simples ou slug do termo é muito mais prático, mas se não for possível, continue lendo…
Como obter a ID de um termo
Através da função get_term_by é um arquivo de tema WordPress">get_term_by você pode obter a ID de um termo informando seu nome, slug ou ID. Quando se fala em termo isso quer dizer: categoria, tag ou taxonomia em geral.
No caso acima, podemos usar o seguinte:
<?php if ( is_home() ) { $cat = get_term_by('slug', 'avisos', 'category'); query_posts( 'category__not_in='.$cat->term_id.'&paged='.$paged ); } ?>
Esse código vai funcionar desde que exista uma categoria com slug ‘avisos’.
Esta função tem três parâmetros principais: qual tipo de informação que você vai informar (nome, slug ou ID), a tal informação (se for ID, informe um número, se for slug, o nome etc) e por fim qual o tipo de termo (category
, post_tag
ou slug de sua taxonomia personalizada, como generos
, cores
etc).
Outra coisa legal que dá para usar com esta função é mostrar o número de postagens usando o tal termo (count
), taxonomia/categoria ancestral (parent
), descrição (description
) e claro ID (term_id
), slug (slug
), nome (name
) etc. Veja um exemplo:
<?php $tag = get_term_by('slug', 'eventos', 'post_tag'); echo '<h2>Atualmente temos '.$tag->count.' shows em andamento!</h2>'; echo '<p>'.$tag->description.'</p>'; // Descricao que se informa no painel ?>
Isso é o mesmo que usar get_category_by_slug é um arquivo de tema WordPress">get_category_by_slug, aliás há muitas funções para categoria que talvez acabem desaparecendo já que são termos mesmo ?!
Não é possível usar e obter uma série de termos, para isso você precisará outras funções e criar algo mais elaborado, mesmo assim, esta é uma função muito prática e você vai achar muitos usos para ela 🙂
3 comentários sobre "Obter ID de um termo"
25.08.2015
Diana
17.09.2015
Jeziel Nunes
15.10.2013