apply_filters( ‘get_the_categories’, WP_Term[] $categories, int|false $post_id )

Filters the array of categories to return for a post.


An array of categories to return for the post.
The post ID.


return apply_filters( 'get_the_categories', $categories, $post_id );


4.4.0Added the $post_id parameter.

User Contributed Notes

  1. Skip to note 2 content

    Remove certain categories from being display on post loop for a specific post.

    Assume we want to remove categories with slug cat-slug-a and cat-slug-b for post with ID 5

     * Remove certain categories on post loop for a specific post
     * @param array $categories Array of categories
     * @return array $categories filtred categories
    function wpdocs_remove_selected_categories( $categories ) {
    	if ( 5 == get_the_ID() ) { // Check if it is a specific post.
    		$categories_to_remove = array(
    		); // Array of categories slug to be remove.
    		foreach ( $categories as $index => $single_cat ) {
    			if ( in_array( $single_cat->slug, $categories_to_remove ) ) {
    				unset( $categories[ $index ] ); // Remove the category.
    	return $categories;
    add_filter( 'get_the_categories', 'wpdocs_remove_selected_categories' );

You must log in before being able to contribute a note or feedback.