Las Tags son algo práctico en un blog, pues ayudan a tus lectores a saber de que cuestiones sueles publicar, y una vez ha quedado clara la diferencia entre categorías y tags, vamos a ver como se pueden mostrar de un modo - iba a decir menos tradicional, pero en realidad igual es justo al contrario - … bueno, no sé.

El caso es que lo que mas se observa estos días son las Nubes de Tags, pero como esto ya lo sabes hacer de varias maneras, y de hecho viene predefinido en la mayoría de las versiones de WordPress, veamos un modo distinto de mostrar las tags: en forma de lista desplegable.

Esto puede ser muy útil si tienes muchas, si por algún motivo necesitas que ocupen menos espacio en la portada de tu blog, o igual hasta por cuestiones estéticas.

Para hacerlo debes, primero, editar el fichero functions.php de tu plantilla y añadir este código:

<?php
function dropdown_tag_cloud( $args = '' ) {
	$defaults = array(
		'smallest' => 8, 'largest' => 22, 'unit' => 'pt', 'number' => 45,
		'format' => 'flat', 'orderby' => 'name', 'order' => 'ASC',
		'exclude' => '', 'include' => ''
	);
	$args = wp_parse_args( $args, $defaults );

	$tags = get_tags( array_merge($args, array('orderby' => 'count', 'order' => 'DESC')) ); // Siempre hace la query a las tags superiores

	if ( empty($tags) )
		return;

	$return = dropdown_generate_tag_cloud( $tags, $args ); // Aqui es donde se ordenan las tags de acuerdo a los $args
	if ( is_wp_error( $return ) )
		return false;
	else
		echo apply_filters( 'dropdown_tag_cloud', $return, $args );
}

function dropdown_generate_tag_cloud( $tags, $args = '' ) {
	global $wp_rewrite;
	$defaults = array(
		'smallest' => 8, 'largest' => 22, 'unit' => 'pt', 'number' => 45,
		'format' => 'flat', 'orderby' => 'name', 'order' => 'ASC'
	);
	$args = wp_parse_args( $args, $defaults );
	extract($args);

	if ( !$tags )
		return;
	$counts = $tag_links = array();
	foreach ( (array) $tags as $tag ) {
		$counts[$tag->name] = $tag->count;
		$tag_links[$tag->name] = get_tag_link( $tag->term_id );
		if ( is_wp_error( $tag_links[$tag->name] ) )
			return $tag_links[$tag->name];
		$tag_ids[$tag->name] = $tag->term_id;
	}

	$min_count = min($counts);
	$spread = max($counts) - $min_count;
	if ( $spread <= 0 )
		$spread = 1;
	$font_spread = $largest - $smallest;
	if ( $font_spread <= 0 )
		$font_spread = 1;
	$font_step = $font_spread / $spread;

	// SQL no puede salvarte; este es un segundo (y potencialmente diferente) orden en una secuencia de datos.
	if ( 'name' == $orderby )
		uksort($counts, 'strnatcasecmp');
	else
		asort($counts);

	if ( 'DESC' == $order )
		$counts = array_reverse( $counts, true );

	$a = array();

	$rel = ( is_object($wp_rewrite) && $wp_rewrite->using_permalinks() ) ? ' rel="tag"' : '';

	foreach ( $counts as $tag => $count ) {
		$tag_id = $tag_ids[$tag];
		$tag_link = clean_url($tag_links[$tag]);
		$tag = str_replace(' ', '&nbsp;', wp_specialchars( $tag ));
		$a[] = "\t<option value='$tag_link'>$tag ($count)</option>";
	}

	switch ( $format ) :
	case 'array' :
		$return =& $a;
		break;
	case 'list' :
		$return = "<ul class='wp-tag-cloud'>\n\t<li>";
		$return .= join("</li>\n\t<li>", $a);
		$return .= "</li>\n</ul>\n";
		break;
	default :
		$return = join("\n", $a);
		break;
	endswitch;

	return apply_filters( 'dropdown_generate_tag_cloud', $return, $tags, $args );
}
?>

Una vez hayas guardado el fichero con los cambios solo tienes que abrir el archivo de tu theme que muestre la barra lateral (pues es de suponer que quieras mostrar ahí la lista de tags), normalmente llamado sidebar.php o similar, y añadas una función que llame al código que has insertado en el archivo functions.php, esta:

<select name="tag-dropdown" onchange="document.location.href=this.options[this.selectedIndex].value;">
	<option value="#">Lista de Tags</option>
	<?php dropdown_tag_cloud('number=0&order=asc'); ?>
</select>

Ya está, con eso tienes una lista desplegable de Tags, quizás mas fácilmente legible que las nubes de tags.

¿Te gustó este post? ¡Compártelo!
  • Bitacoras.com
  • TwitThis
  • Facebook
  • Meneame
  • Google Bookmarks
  • del.icio.us
  • Live
  • Technorati
  • Ping.fm
  • Wikio
  • Turn this article into a PDF!
  • E-mail this story to a friend!
  • Print this article!

También te puede interesar:

cursos formación continua

    4 comentarios en “Como mostrar las Tags en un menú desplegable”

  1. Información Bitacoras.com…

    Si lo deseas, puedes hacer click para valorar este post en Bitacoras.com. Gracias….

  2. Skavenger (95 comentarios) dijo:

    No lo veo muy útil, para mi se pierde el sentido de las tags.

  3. maria (4 comentarios) dijo:

    Hola, a mi me parece útil, pero me da error. Si lo pongo en el sidebar, directamente no sale nada. Si lo pongo como texto (widget), sale el desplegable, pero está vacio…

  4. Nico M. (2 comentarios) dijo:

    Que tal amigos, yo estoy tratando de poner una categoría pero de post en desplegable, utilicé el código con una categoría y funciona bien, pero con varias ya no funciona. aca dejo el código


    Alto Parana
    -------------------------------------

    <option value="">

    Central
    -------------------------------------

    <option value="">

    CON UN LOOP FUNCIONA PERFECTO, PERO CON 2 YA NO FUNCIONA, HAY ALGUNA FUNCIÓN PARA LOS POST COMO ESTA DE LOS TAGS?

    O ME PUEDEN DAR UNA MANO, MIS CONOCIMIENTOS EN PHP SON BASICOS. CONDICIONALES Y ALGUNAS COSAS MAS PERO CLASES ETC YA NO LE PEGO

Escribe un Comentario

XHTML: Puedes usar estas etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>



Subir

Expertos en WordPress
Euribor
Hardware. Software. Ocio & Multimedia. Humor. Internet. Videojuegos.Noticias
Participa en el Debate
  • ejner69: La verdad ignoro el por que y los casos que he leído no me han terminado de convencer....
  • carlos: Muchas gracias Ejner, He visto que algunos autores no son partidarios de hacer ese...
  • ejner69: Debes editar los permalinks de tu WordPress. Ve a ‘Enlaces permanentes’ y...
  • Merlyn: Conozco un plugin muy bueno para esto: Hidepost.
  • edder15x: yo quiero meter una encuesta a mi blog pero cuando lo pongo me sale que tengo que...
Noticias Breves
  • Si quieres aprender como hacer multitud de diseños distintos para WordPress no te pierdas esta estupenda recopilación de 26 tutoriales de diseño de blogs WordPress.

    [#3]

  • Acaba de salir a la luz la nueva versión de WordPress para iPhone 1.3, con soporte completo para el firmware de iPhone 3.0. Va de cojones estupendamente. Altamente recomendable esta actualización, que tienes en iTunes.

    [#1]

  • Me avisa Kike Alonso de un nuevo plugin que permite que los comentarios que dejen tus amigos de Friendfeed al respecto de un post de tu sitio WordPress aparezcan también en tu post como comentarios normales, algo realmente interesante pues permite, con algunos clientes de escritorio e iPhone, comentar en blogs sin dejar de usar la aplicación de mensajería.

    [#6]


  • Ahora mismo en los FOROS ...
    Usuarios Registrados
  • Acceder

  • Translate this Blog
    Spanish flagItalian flagChinese (Simplified) flagPortuguese flagEnglish flagGerman flagFrench flagJapanese flagRussian flagSwedish flagCatalan flagHebrew flag                              
    By N2H