Здравствуйте!
попробуйте как то так:
где нибудь в functions.php
function my_custom_excerpt( $output ) {
if ( условие ) {
$output = substr($output, 0, 100);
} else if ( условие2 ) {
$output = substr($output, 0, 200);
}
return $output;
}
add_filter( 'get_the_excerpt', 'my_custom_excerpt' );
функция the_excerpt в себе вызывает get_the_excerpt, к которому мы и применяем данный фильтр.
Но надо понимать, что данный фильтр будет брать первые n-символов из возврата get_the_excerpt без этого фильтра. Таким образом, если у вас get_the_excerpt возвращает изначально меньше запрашиваемого количества символов, то данный фильтр вернет меньше требуемого количества.