wp_tag_cloud( array|string $args = '' )
Displays a tag cloud.
Description Description
Parameters Parameters
- $args
-
(array|string) (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.- 'number'
(int) The number of tags to display. Accepts any positive integer or zero to return all. Default 0 (all tags). - 'link'
(string) Whether to display term editing links or term permalinks. Accepts 'edit' and 'view'. Default 'view'. - '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. - 'echo'
(bool) Whether or not to echo the return value. Default true.
Default value: ''
- 'number'
Return Return
(void|array) Generated tag cloud, only if no failures and 'array' is set for the 'format' argument. Otherwise, this function outputs the tag cloud.
Source 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(
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 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;
}
Expand full source code Collapse full source code View on Trac
Changelog Changelog
| Version | Description |
|---|---|
| 4.8.0 | Added the show_count argument. |
| 2.3.0 | Introduced. |
User Contributed Notes User Contributed Notes
You must log in before being able to contribute a note or feedback.
Cloud limited in size and ordered by count rather than name
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
Cloud returned as array but not displayed
The variable $tag will contain the tag cloud for use in other PHP code
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”.
<?php wp_tag_cloud( array( 'topic_count_text_callback' => 'my_tag_text_callback' ) ); function my_tag_text_callback( $count ) { return sprintf( _n( '%s picture', '%s pictures', $count ), number_format_i18n( $count ) ); } ?>