For a better way, you can use the get_the_excerpt
filter:
function get_excerpt($excerpt="",$limit=140){
$excerpt = preg_replace(" (\[.*?\])",'',$excerpt);
$excerpt = strip_shortcodes($excerpt);
$excerpt = strip_tags($excerpt);
$excerpt = mb_substr($excerpt, 0, $limit);
$excerpt = mb_substr($excerpt, 0, strripos($excerpt, " "));
$excerpt = trim(preg_replace( '/\s+/', ' ', $excerpt));
$excerpt = $excerpt.'...';
return $excerpt;
}
add_filter('get_the_excerpt',"get_excerpt");
Change the $limit=140
to the number of characters you want. Also if you want in different way:
add_filter('get_the_excerpt',function ($excerpt="",$limit=140){
$excerpt = preg_replace(" (\[.*?\])",'',$excerpt);
$excerpt = strip_shortcodes($excerpt);
$excerpt = strip_tags($excerpt);
$excerpt = mb_substr($excerpt, 0, $limit);
$excerpt = mb_substr($excerpt, 0, strripos($excerpt, " "));
$excerpt = trim(preg_replace( '/\s+/', ' ', $excerpt));
$excerpt = $excerpt.'...';
return $excerpt;
});
That will make avoid any conflict like existing name of function get_excerpt
.