El funcionamiento por defecto de la nube de etiquetas en WordPress es en mi opinión bastante molesto. En concreto lo que a mi más me molesta es que en su comportamiento por defecto cambia el tamaño del texto en función del número de apariciones de cada etiqueta, lo que la hace visualmente horrible.

Para cambiarlo es necesario modificar la función wp_tag_cloud() que es parte del core de WordPress por lo que no es recomendable modificarlo pues este cambio se perdería al actualizar WordPress.

La forma de «sobrescribir» estas funciones sin modificar el core de WordPress es creando un clon de la función con otro nombre en el fichero functions.php del tema en uso de Wordpress, después modificar el código según nuestros deseos y finalmente crear un «filtro» para que se ejecute esa función en lugar de la original.

En concreto en el ejemplo que muestro sobre el tamaño de las letras en las etiquetas, se debe cambiar los parámetros «smallest» y «largest» tal y como se muestra en el siguiente ejemplo.

 

function my_tag_cloud($defaults) {
	$args = array('smallest' => 10, 'largest' => 10, 'unit' => 'pt', 'number' => 25,	'format' => 'flat', 'separator' => "\n", 'orderby' => 'name', 'order' => 'ASC', 'exclude' => '', 'include' => '', 'link' => 'view', 'taxonomy' => 'post_tag', 'echo' => true
	);
	$args = wp_parse_args( $args, $defaults );
	$tags = get_terms( $args['taxonomy'], array_merge( $args, array( 'orderby' => 'count', 'order' => 'DESC' ) ) ); // Always query top tags

	if ( empty( $tags ) )
		return;

	foreach ( $tags as $key => $tag ) {
		if ( 'edit' == $args['link'] )
			$link = get_edit_tag_link( $tag->term_id, $args['taxonomy'] );
		else
			$link = get_term_link( intval($tag->term_id), $args['taxonomy'] );
		if ( is_wp_error( $link ) )
			return false;

		$tags[ $key ]->link = $link;
		$tags[ $key ]->id = $tag->term_id;
	}

	$return = wp_generate_tag_cloud( $tags, $args ); // Here's where those top tags get sorted according to $args

	$return = apply_filters( 'my_tag_cloud', $return, $args );

	if ( 'array' == $args['format'] || empty($args['echo']) )
		return $return;

	echo $return;
}
add_filter('wp_tag_cloud', 'my_tag_cloud');

 

Optin

¡ No se Pierda Nuestro Boletín !

Suscribirse y le comunicaremos cuando publiquemos nuevos artículos.

 

(No más de 1 correo semanal | 100% sin SPAM)

Se ha suscrito correctamente.

Pin It on Pinterest

Share This