Obtener los tags para una categoria en Wordpress
Escrito el 02 Feb, 2010 por Alexis en Wordpress
Quizás alguna vez te hayas preguntado como obtener los tags de solo una(s) categoría(s) pero no hayas dando con el código necesario. Obtener solo los tags para X categoría dada, puede ser una buena idea si contamos con Blog bastante popular y necesitamos centrar la atención en puntos concretos, en este casos los tags.

Tal ves te estés preguntando que diferencia puede haber en nombrar los tags de este forma y de la forma que comúnmente se utiliza. Bueno, supongamos que cuentas con Blog donde cuentas con estas categorías y tags relacionados:
- A) Informática Tags> Mac Os, Windows, Linux
- B) Música Tags> Rock, Pop, Clásica
- C) Películas Tags> Retro, Drama, Acción
Si quisiera crear en mi barra lateral un pequeño rincón donde lo titulo el mes de la música, una buena idea seria mostrar las ultimas entradas y los últimos tags. Mis ultimas entradas se muestran con un query_post, pero si invoco a mis tags, estarían incluyendo; no solo a Rock, Pop y Clásica; sino también a todos los demás, como por ejemplo, Drama, Linux, etc.
Con esta pequeña receta podremos incluir los últimos 10 tags asignados dentro de una categoría o categorías, con unas simples lineas.
Abre tu archivo functions.php
function get_category_tags($args) { global $wpdb; $tags = $wpdb->get_results (" SELECT DISTINCT terms2.term_id as tag_id, terms2.name as tag_name, null as tag_link FROM wp_posts as p1 LEFT JOIN wp_term_relationships as r1 ON p1.ID = r1.object_ID LEFT JOIN wp_term_taxonomy as t1 ON r1.term_taxonomy_id = t1.term_taxonomy_id LEFT JOIN wp_terms as terms1 ON t1.term_id = terms1.term_id, wp_posts as p2 LEFT JOIN wp_term_relationships as r2 ON p2.ID = r2.object_ID LEFT JOIN wp_term_taxonomy as t2 ON r2.term_taxonomy_id = t2.term_taxonomy_id LEFT JOIN wp_terms as terms2 ON t2.term_id = terms2.term_id WHERE t1.taxonomy = 'category' AND p1.post_status = 'publish' AND terms1.term_id IN (".$args['categories'].") AND t2.taxonomy = 'post_tag' AND p2.post_status = 'publish' AND p1.ID = p2.ID ORDER by tag_name LIMIT 10 "); $count = 0; foreach ($tags as $tag) { $tags[$count]->tag_link = get_tag_link($tag->tag_id); $count++; } return $tags; }
Como podrás ver LIMIT 10 es lo que nos permite tomar control de la cantidad de tags a mostrar, para este ejemplo solo serán 10.
Integrando en tu plantilla
Donde necesites mostrar los tags, solo introduce este lineas, y lograras mostrar los últimos 10 tags en un lista desordenada.
<?php $args = array('categories' => '3,40'); // id de la(s) categoria(s) que queremos hacer referencia $tags = get_category_tags($args); $content .= "<ul>"; foreach($tags as $tag) { $content .= "<li><a href=\"$tag->tag_link\">$tag->tag_name</a></li>"; } $content .= "</ul>"; echo $content; ?> </php>
Como lo veraz el array es simple de adaptar a tus necesidades, por lo que podrás darle el formato que mas te convenga.








Sin comentarios to “Obtener los tags para una categoria en Wordpress”
Trackbacks/Pingbacks
- Bitacoras.com
Back to Top