Displays a tag cloud.
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.
$argsarray|stringoptional
$args.number intlink string'edit' and 'view'. Default 'view'.post_type stringecho boolsmallest int$unit, to determine CSS text size unit. Default 8 (pt).largest int$unit, to determine CSS text size unit. Default 22 (pt).unit string$smallest and $largest values. Accepts any valid CSS text size unit. Default 'pt'.number intformat string'flat' (tags separated with spaces), 'list' (tags displayed in an unordered list), or 'array' (returns an array).'flat'.separator stringorderby string'name' or 'count'.'name'. The 'tag_cloud_sort' filter can also affect how tags are sorted.order string'ASC' (ascending), 'DESC' (descending), or 'RAND' (random). Default 'ASC'.filter int|booltopic_count_text arraytopic_count_text_callback callabletopic_count_scale_callback callableshow_count bool|intDefault:''
'echo' argument is true, or on failure. Otherwise, tag cloud as a string or an array, depending on 'format' argument.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;
}
Filters the tag cloud output.
© 2003–2024 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/functions/wp_tag_cloud