get_the_category_list( string $separator = '', string $parents = '', int $post_id = false ): string
- Since
- 1.5.1
- Source
wp-includes/category-template.php:141
Retrieves category list for a post in either HTML list or custom format.
Description
Generally used for quick, delimited (e.g. comma-separated) lists of categories, as part of a post entry meta. For a more powerful, list-based function, see wp_list_categories().
Parameters
$separatorstringoptional- Separator between the categories. By default, the links are placed in an unordered list. An empty string will result in the default behavior.Default:
'' $parentsstringoptional- How to display the parents. Accepts 'multiple', 'single', or empty. Default empty string.Default:
'' $post_idintoptional- ID of the post to retrieve categories for. Defaults to the current post.Default:
false
Return
string- Category list for a post.
Hooks fired · 4
4 hooks fire while get_the_category_list() runs, in this order:
- apply_filters( the_category )filterline 146 (+5 into the body)
Filters the category or list of categories.
- apply_filters( the_category_list )filterline 158 (+17 into the body)
Filters the categories before building the category list.
- apply_filters( the_category )filterline 162 (+21 into the body)
Filters the category or list of categories.
- apply_filters( the_category )filterline 230 (+89 into the body)
Filters the category or list of categories.
Uses · 8
- is_object_in_taxonomy()Determines if the given object type is associated with the given taxonomy.
- get_post_type()Retrieves the post type of the current post or of a given post.
- apply_filters()Calls the callback functions that have been added to a filter hook.
- get_the_category()Retrieves post categories.
- __()Retrieves the translation of $text.
- get_category_parents()Retrieves category parents with separator.
- esc_url()Checks and cleans a URL.
- get_category_link()Retrieves category link URL.
Used by · 9
- the_category()Displays category list for a post in either HTML list or custom format.
- twenty_twenty_one_entry_meta_footer()Prints HTML with meta information for the categories, tags and comments.
- twentyfifteen_entry_meta()Prints HTML with meta information for the categories, tags.
- twentynineteen_entry_footer()Prints HTML with meta information for the categories, tags and comments.
- twentyseventeen_entry_footer()Prints HTML with meta information for the categories, tags and comments.
- twentysixteen_entry_taxonomies()Prints HTML with category and tags for current post.
- twentyten_posted_in()Print HTML with meta information for the current post (category, tags and permalink).
- twentythirteen_entry_meta()Print HTML with meta information for current post: categories, tags, permalink, author, and date.
- twentytwelve_entry_meta()Set up post entry meta.
Source
function get_the_category_list( $separator = '', $parents = '', $post_id = false ) { global $wp_rewrite; if ( ! is_object_in_taxonomy( get_post_type( $post_id ), 'category' ) ) { /** This filter is documented in wp-includes/category-template.php */ return apply_filters( 'the_category', '', $separator, $parents ); } /** * Filters the categories before building the category list. * * @since 4.4.0 * * @param WP_Term[] $categories An array of the post's categories. * @param int|false $post_id ID of the post to retrieve categories for. * When `false`, defaults to the current post in the loop. */ $categories = apply_filters( 'the_category_list', get_the_category( $post_id ), $post_id ); if ( empty( $categories ) ) { /** This filter is documented in wp-includes/category-template.php */ return apply_filters( 'the_category', __( 'Uncategorized' ), $separator, $parents ); } $rel = ( is_object( $wp_rewrite ) && $wp_rewrite->using_permalinks() ) ? 'rel="category tag"' : 'rel="category"'; $thelist = ''; if ( '' === $separator ) { $thelist .= '<ul class="post-categories">'; foreach ( $categories as $category ) { $thelist .= "\n\t<li>"; switch ( strtolower( $parents ) ) { case 'multiple': if ( $category->parent ) { $thelist .= get_category_parents( $category->parent, true, $separator ); } $thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel . '>' . $category->name . '</a></li>'; break; case 'single': $thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel . '>'; if ( $category->parent ) { $thelist .= get_category_parents( $category->parent, false, $separator ); } $thelist .= $category->name . '</a></li>'; break; case '': default: $thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel . '>' . $category->name . '</a></li>'; } } $thelist .= '</ul>'; } else { $i = 0; foreach ( $categories as $category ) { if ( 0 < $i ) { $thelist .= $separator; } switch ( strtolower( $parents ) ) { case 'multiple': if ( $category->parent ) { $thelist .= get_category_parents( $category->parent, true, $separator ); } $thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel . '>' . $category->name . '</a>'; break; case 'single': $thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel . '>'; if ( $category->parent ) { $thelist .= get_category_parents( $category->parent, false, $separator ); } $thelist .= "$category->name</a>"; break; case '': default: $thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel . '>' . $category->name . '</a>'; } ++$i; } } /**History
Introduced in 1.5.1. One change between 6.7.7 and 7.1.0.
Signature, return type and hooks compared across 5 parsed releases.
6.9.7
Parameter
$post_id retyped from int to int|false.verified against source1.5.1
Introduced.from the docblock
About this page
- Parsed data
- Generated from the wordpress-develop 6.7.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.