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

Filters the array of categories to return for a post.

Parameters

$categoriesWP_Term[]
An array of categories to return for the post.
$post_idint|false
The post ID.

Source

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

Changelog

VersionDescription
4.4.0Added the $post_id parameter.
3.1.0Introduced.

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(
    			'cat-slug-a',
    			'cat-slug-b'
    		); // 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.