Obter ID de um termo

Arquivos: archive.php, functions.php, index.php

Funções: get_term_by query_posts

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 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, 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 🙂

Obter ID de um termo é um artigo sobre ID, taxonomias, termos ID, taxonomias, termos Códigos http://dianakcury.com/wp/codigos/obter-id-de-um-termo#commentsDiana K. Cury http://dianakcury.com/wordpress/wp-content/themes/di3554/img/card.png

3 ideias sobre “Obter ID de um termo

  1. Douglas

    Olá Diana , eu gostaria de obter o Nome dos termos de uma taxonomia personalizada que esteja atrelados ao post dentro do loop. Tem como ?

    Responder

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *