wp_tag_cloud

Выводит “облако меток”: список меток в виде облака. Можно указать произвольную таксономию.

Чтобы вывести элементы произвольной таксономии в виде облака, укажите название таксономии в параметре taxonomy.

”Облако меток” называется так, потому что размер текста каждой метки зависит от того, сколько записей связано с меткой. Чем больше записей, тем больше будет текст метки (в итоге получается нечто похожее на облако).

С версии 2.8 был добавлен параметр taxonomy, позволяющий создавать облако не только для стандартных меток, но и для категорий и произвольных таксономий.
Хуки из функции:
wp_tag_cloud
Возвращает

Выводит на экран html код списка.
Возвращает HTML, если параметр echo = false.
Вернет массив облака меток, если параметр format = array.
Вернет false, если не удалось получить метки.

Использование

add_filter('widget_tag_cloud_args', function( $args ){
	$args['largest'] = 16;

	return $args;
});

На этот пример меня подтолкнул этот комменатрий

Заметки

  • В версии 3.1 добавлен возможность передавать массивы в параметр taxonomy;
  • В версии 2.9 добавлен параметр separator;
  • В версии 2.8 добавлены параметры taxonomy и echo;
  • В версии 2.7 добавлен параметр link;

Код из


wp-includes/category-template.php

WP 4.7.2

<?php
function wp_tag_cloud( $args = '' ) {
	$defaults = array(
		'smallest' => 8, 'largest' => 22, 'unit' => 'pt', 'number' => 45,
		'format' => 'flat', 'separator' => "n", 'orderby' => 'name', 'order' => 'ASC',
		'exclude' => '', 'include' => '', 'link' => 'view', 'taxonomy' => 'post_tag', 'post_type' => '', '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 ) || is_wp_error( $tags ) )
		return;

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

		$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

	/**
	 * Filters the tag cloud output.
	 *
	 * @since 2.3.0
	 *
	 * @param string $return HTML output of the tag cloud.
	 * @param array  $args   An array of tag cloud arguments.
	 */
	$return = apply_filters( 'wp_tag_cloud', $return, $args );

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

	echo $return;
}

Комментарии:


Оставить комментарий

Your email address will not be published. Required fields are marked *