Back-End

31 jul, 2013

Verificando se existem posts em uma Taxonomia Personalizada

Publicidade

Durante a construção de um projeto, esbarramos em diversos problemas e possibilidades. Hoje não existe uma função nativa do WordPress que verifique um post em uma determinada taxonomia personalizada. Pesquisando um pouco, achei um código que adaptei a minha atual necessidade. E essa compartilho com vocês.

No seu arquivo functions.php insira o código abaixo.

[php]
function WP_custom_in_taxonomy($tax, $term, $_post = NULL) {
if ( !$tax || !$term ) { return FALSE; }
if ( $_post ) {
$_post = get_post( $_post );
} else {
$_post =& $GLOBALS[‘post’];
}
if ( !$_post ) { return FALSE; }
$return = is_object_in_term( $_post->ID, $tax, $term );
if ( is_wp_error( $return ) ) { return FALSE; }
return $return;
}
[/php]
Para usar, basta colocar o código abaixo, colocando o nome do seu Custom Post Types e da sua taxonomia.
Exemplo: Vamos supor que temos um Custom Post Types chamado Locais e uma Taxonomia com nome de Bares. Nesse caso usaríamos o código abaixo.

[php] if (WP_custom_in_taxonomy(‘locais’, ‘bares’)) {
echo "Sim, temos bares cadastrados";
} else {
echo "Desculpe, não temos bares cadastrados";
} [/php]

Lembrando que caso queira várias taxonomias, basta passar um array.

Exemplo: Bares, Restaurantes, Hotéis

[php]
if (WP_custom_in_taxonomy(‘locais’, array(‘bares’, ‘restaurantes’, ‘hoteis’))) {} [/php]

ou

[php] if (WP_custom_in_taxonomy(‘locais’, array(1, 2, 3)) {} [/php]

Dessa forma basta personalizar a seu gosto

Espero que tenha ajudado.

Salaam Aleikum