wp_tag_cloud

Display tag cloud.

Description

(void|array) wp_tag_cloud( (string) $args = '' ); 

The text size is set by the smallest and largest arguments, which will use the unit, argument value for the CSS text size unit. The format. argument can be flat (default), list, or array. The flat value for the format. argument will separate tags with spaces. The list value for the format. argument will format the tags in a UL HTML list. The array value for the format. argument will return in PHP array type format.

The orderby argument will accept name or count and defaults to name. The order is the direction to sort, defaults to ASC and can be DESC.

The number argument is how many tags to return. By default, the limit will be to return the top 45 tags in the tag cloud list.

The topic_count_text argument is a nooped plural from _n_noop() to generate the text for the tooltip of the tag link.

The topic_count_text_callback argument is a function, which given the count of the posts with that tag returns a text for the tooltip of the tag link.

The post_type argument is used only when link is set to edit. It determines the post_type passed to edit.php for the popular tags edit links.

The exclude and include arguments are used for the get_tags() function. Only one should be used, because only one will be used and the other ignored, if they are both set.

Returns (void|array)

Generated tag cloud, only if no failures and 'array' is set for the 'format' argument. Otherwise, this function outputs the tag cloud.

Parameters (1)

0. $args — Optional. (string) => ''
Override default arguments.

Usage

  1. if ( !function_exists( 'wp_tag_cloud' ) ) { 
  2. require_once ABSPATH . WPINC . '/category-template.php'; 
  3.  
  4. // Optional. Override default arguments. 
  5. $args = ''; 
  6.  
  7. // NOTICE! Understand what this does before running. 
  8. $result = wp_tag_cloud($args); 
  9.  

Defined (1)

The function is defined in the following location(s).

/wp-includes/category-template.php  
  1. function wp_tag_cloud( $args = '' ) { 
  2. $defaults = array( 
  3. 'smallest' => 8, 'largest' => 22, 'unit' => 'pt', 'number' => 45,  
  4. 'format' => 'flat', 'separator' => "\n", 'orderby' => 'name', 'order' => 'ASC',  
  5. 'exclude' => '', 'include' => '', 'link' => 'view', 'taxonomy' => 'post_tag', 'post_type' => '', 'echo' => true 
  6. ); 
  7. $args = wp_parse_args( $args, $defaults ); 
  8.  
  9. $tags = get_terms( $args['taxonomy'], array_merge( $args, array( 'orderby' => 'count', 'order' => 'DESC' ) ) ); // Always query top tags 
  10.  
  11. if ( empty( $tags ) || is_wp_error( $tags ) ) 
  12. return; 
  13.  
  14. foreach ( $tags as $key => $tag ) { 
  15. if ( 'edit' == $args['link'] ) 
  16. $link = get_edit_term_link( $tag->term_id, $tag->taxonomy, $args['post_type'] ); 
  17. else 
  18. $link = get_term_link( intval($tag->term_id), $tag->taxonomy ); 
  19. if ( is_wp_error( $link ) ) 
  20. return; 
  21.  
  22. $tags[ $key ]->link = $link; 
  23. $tags[ $key ]->id = $tag->term_id; 
  24.  
  25. $return = wp_generate_tag_cloud( $tags, $args ); // Here's where those top tags get sorted according to $args 
  26.  
  27. /** 
  28. * Filters the tag cloud output. 
  29. * @since 2.3.0 
  30. * @param string $return HTML output of the tag cloud. 
  31. * @param array $args An array of tag cloud arguments. 
  32. */ 
  33. $return = apply_filters( 'wp_tag_cloud', $return, $args ); 
  34.  
  35. if ( 'array' == $args['format'] || empty($args['echo']) ) 
  36. return $return; 
  37.  
  38. echo $return;