wp_tag_cloud( array|string $args = '' ): void|string|string[]
- Since
- 2.3.0, 2.8.0, 4.8.0
- Source
wp-includes/category-template.php:716
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.Default:''$numberintdefault: 45The number of tags to display. Accepts any positive integer or zero to return all.$linkstringdefault: 'view'Whether to display term editing links or term permalinks. Accepts 'edit' and '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.$echobooldefault: trueWhether or not to echo the return value.
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.
Hooks fired · 1
One hook fires while wp_tag_cloud() runs, in this order:
Uses · 7
- wp_parse_args()Merges user defined arguments into defaults array.
- get_terms()Retrieves the terms in a given taxonomy or list of taxonomies.
- is_wp_error()Checks whether the given variable is a WordPress Error.
- get_edit_term_link()Retrieves the URL for editing a given term.
- get_term_link()Generates a permalink for a taxonomy term archive.
- wp_generate_tag_cloud()Generates a tag cloud (heatmap) from provided data.
- apply_filters()Calls the callback functions that have been added to a filter hook.
Used by · 2
- WP_Widget_Tag_Cloud::widget()Outputs the content for the current Tag Cloud widget instance.
- render_block_core_tag_cloud()Renders the `core/tag-cloud` block on server.
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;}History
Introduced in 2.3.0. Unchanged from 6.7.7 through 7.1.0.
Signature, return type and hooks compared across 5 parsed releases.
4.8.0
Added the
show_count argument.from the docblock2.8.0
Added the
taxonomy argument.from the docblock2.3.0
Introduced.from the docblock
About this page
- Parsed data
- Generated from the wordpress-develop 6.9.7 tag, from
src/wp-includes/category-template.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it. - Corrections
- Something wrong on this page? Report it and it gets fixed in the next regeneration.