Есть кастомный код, который обрезает the_excerpt() до первой точки.
function strpos_arr($haystack, $needle) {
if(!is_array($needle)) $needle = array($needle);
foreach($needle as $what) {
if(($pos = strpos($haystack, $what))!==false) $pos_arr[] = $pos;
}
return is_array($pos_arr) ? min($pos_arr) : $pos;
}
add_filter(
'the_excerpt',
function ($excerpt) {
return substr($excerpt,0,strpos_arr($excerpt,array('.', '?'))+1);
}
);
Проблема в том, что если первая точка слишком рано, например, предложение состоит из одного слова, то смотрится как-то не очень. Подскажите, пожалуйста, как добавить в этот код возможность задавать минимальное кол-во символов до первой точки. Т.е. если первая точка ранее, чем заданное кол-во символов, то обрезка текста происходит на второй точке.