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
$argsarray|stringoptional- 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.
numberintThe number of tags to display. Accepts any positive integer or zero to return all. Default 45.linkstringWhether to display term editing links or term permalinks.
Accepts'edit'and'view'. Default'view'.post_typestringThe 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.echoboolWhether or not to echo the return value. Default true.
More Arguments from wp_generate_tag_cloud( … $args )
Array or string of arguments for generating a tag cloud.
smallestintSmallest font size used to display tags. Paired with the value of$unit, to determine CSS text size unit. Default 8 (pt).largestintLargest font size used to display tags. Paired with the value of$unit, to determine CSS text size unit. Default 22 (pt).unitstringCSS text size unit to use with the$smallestand$largestvalues. Accepts any valid CSS text size unit. Default'pt'.numberintThe number of tags to return. Accepts any positive integer or zero to return all.
Default 0.formatstringFormat to display the tag cloud in. Accepts'flat'(tags separated with spaces),'list'(tags displayed in an unordered list), or'array'(returns an array).
Default'flat'.separatorstringHTML or text to separate the tags. Default "n" (newline).orderbystringValue to order tags by. Accepts'name'or'count'.
Default'name'. The 'tag_cloud_sort' filter can also affect how tags are sorted.orderstringHow to order the tags. Accepts'ASC'(ascending),'DESC'(descending), or'RAND'(random). Default'ASC'.filterint|boolWhether to enable filtering of the final output via 'wp_generate_tag_cloud'. Default 1.topic_count_textarrayNooped plural text from _n_noop() to supply to tag counts. Default null.topic_count_text_callbackcallableCallback used to generate nooped plural text for tag counts based on the count. Default null.topic_count_scale_callbackcallableCallback used to determine the tag count scaling value. Default default_topic_count_scale() .show_countbool|intWhether to display the tag counts. Default 0. Accepts 0, 1, or their bool equivalents.
Default:
''
Source
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(
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, $tag->taxonomy, $args['post_type'] );
} else {
$link = get_term_link( $tag, $tag->taxonomy );
}
if ( is_wp_error( $link ) ) {
return;
}
$tags[ $key ]->link = $link;
$tags[ $key ]->id = $tag->term_id;
}
// Here's where those top tags get sorted according to $args.
$return = wp_generate_tag_cloud( $tags, $args );
/**
* Filters the tag cloud output.
*
* @since 2.3.0
*
* @param string|string[] $return Tag cloud as a string or an array, depending on 'format' argument.
* @param array $args An array of tag cloud arguments. See wp_tag_cloud()
* for information on accepted arguments.
*/
$return = apply_filters( 'wp_tag_cloud', $return, $args );
if ( 'array' === $args['format'] || empty( $args['echo'] ) ) {
return $return;
}
echo $return;
}
Hooks
- apply_filters( ‘wp_tag_cloud’,
string|string[] $return ,array $args ) Filters the tag cloud output.
Cloud limited in size and ordered by count rather than name
Cloud returned as array but not displayed
The variable $tag will contain the tag cloud for use in other PHP code
Display a Cloud of Categories and Tags
Use the array feature of the taxonomy argument to cause a cloud of categories and tags to display.
Cloud displayed under Popular Tags title
Display a Category Cloud
Use the taxonomy argument to cause a cloud of categories to display.
Change Title Text of Cloud Links
Use the topic_count_text_callback argument to pass in a new callback function. The original function default_topic_count_text() is located in /wp-includes/category-template.php This example changes the title text from the default “topics” to “pictures”.