wp_tag_cloud( array|string $args = '' )
Displays a tag cloud.
Description
Outputs a list of tags in what is called a ‘tag cloud’, where the size of each tag is determined by how many times that particular tag has been assigned to posts.
Parameters
- $args
-
(Optional) Array or string of arguments for displaying a tag cloud. See wp_generate_tag_cloud() and get_terms() for the full lists of arguments that can be passed in
$args
.<br>- 'number'
(int) The number of tags to display. Accepts any positive integer or zero to return all. Default 45.<br> - 'link'
(string) Whether to display term editing links or term permalinks.<br> Accepts 'edit' and 'view'. Default 'view'.<br> - 'post_type'
(string) The post type. Used to highlight the proper post type menu on the linked edit page. Defaults to the first post type associated with the taxonomy.<br> - 'echo'
(bool) Whether or not to echo the return value. Default true.<br>
Default value: ''
- 'number'
Return
(void|string|string[]) Void if 'echo' argument is true, or on failure. Otherwise, tag cloud as a string or an array, depending on 'format' argument.
Source
File: wp-includes/category-template.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,
'show_count' => 0,
);
$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 WP-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;
}
Changelog
Version | Description |
---|---|
4.8.0 | Added the show_count argument. |
2.8.0 | Added the taxonomy argument. |
2.3.0 | Introduced. |