wppaste
WordPress

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:

  1. apply_filters( the_category )filterline 146 (+5 into the body)

    Filters the category or list of categories.

  2. apply_filters( the_category_list )filterline 158 (+17 into the body)

    Filters the categories before building the category list.

  3. apply_filters( the_category )filterline 162 (+21 into the body)

    Filters the category or list of categories.

  4. apply_filters( the_category )filterline 230 (+89 into the body)

    Filters the category or list of categories.

Uses · 8

Used by · 9

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.

  1. 6.7.7
  2. 6.8.8
  3. 6.9.7
  4. 7.0.4
  5. 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 source
1.5.1
Introduced.from the docblock

About this page

Parsed data
Generated from the wordpress-develop 6.8.8 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.