From de0b5c846fe199f2a64ab00a88811b4fea3ddb15 Mon Sep 17 00:00:00 2001 From: Boone Gorges Date: Sun, 27 Sep 2015 02:21:43 +0000 Subject: [PATCH] Introduce `'the_category_list'` filter. Used to filter categories as structured data, before building markup in `get_the_category_list()`. We use this filter in addition to upstream filters (such as 'get_the_categories'`) because those upstream filters are used in numerous contexts, while `'the_category_list'` is always used for generating markup for display. Props KevinB, ericlewis, SergeyBiryukov, DrewAPicture. Fixes #9227. git-svn-id: https://develop.svn.wordpress.org/trunk@34625 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/category-template.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/wp-includes/category-template.php b/src/wp-includes/category-template.php index 019854d127..355b46b2e9 100644 --- a/src/wp-includes/category-template.php +++ b/src/wp-includes/category-template.php @@ -175,7 +175,17 @@ function get_the_category_list( $separator = '', $parents='', $post_id = false ) return apply_filters( 'the_category', '', $separator, $parents ); } - $categories = get_the_category( $post_id ); + /** + * Filter the categories before building the category list. + * + * @since 4.4.0 + * + * @param array $categories An array of the post's categories. + * @param int|bool $post_id ID of the post we're retrieving categories for. When `false`, we assume 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 );