Limit excerpt length for posts from specific category or taxonomy

Sometimes we may need to show limited or extra excerpt content for posts from some specific category/taxonomy. We can easily control excerpt length using the_excerpt filter. And with help from has_term function, we can define separate length for one or more specific categories.

function careless_trim_custom_excerpt( $excerpt ) {
    //only for specific category/taxonomy
    if ( has_term( array( '123', '234' ), 'category' ) ) {
        $excerpt = wp_trim_words( get_the_excerpt(), 10 );
    }

    return $excerpt;
}

add_filter( 'the_excerpt', 'careless_trim_custom_excerpt', 999 );

In the above code, line 3 defines our categories or custom taxonomies. Replace 123 and 234 with your desired category/taxonomy ID. Here, category is the taxonomy. If you want this for WooCommerce, replace category with product_cat.

Line 4 defines number of words to show as excerpt. Replace 10 with your desired number.

Code goes in the functions.php file of your active theme.