Ограничиваем количество символов функции the_excerpt() в WordPress

Функция the_excerpt() используется для вывода отрывка контента в теме WordPress. По умолчанию функция выводит отрывок из 55 слов, никак не ограничивая вывод по количеству символов. Соответственно, если в вашей вёрстке есть блоки с фиксированными размерами, то такой отрывок может некрасиво вылазить за пределы блока. И выглядеть это будет примерно так:

Ограничиваем по количеству слов

В функционале WordPress есть фильтр, которым можно граничить вывод функции по количеству слов. Сделать это можно, добавив в файл function.php вашей темы следующий код:

function ustom_excerpt_length( $length ) {
    return 20; // Количество слов, которым хотим ограничить вывод функции
}
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );

Но это решение тоже не идеально, и его не получится применить для решения нашей задачи — вывода отрывка под блок нужного нам размера. Размер слов может быть разным, так слова «ёж» и «превысокомногорассмотрительствующий» в глазах бездушного скрипта будут уравнены.

Ограничиваем по количеству слов

Без строгой обрезки, с сохранением последнего слова

function custom_excerpt_length($excerpt){
	$characters = 160; // Количество символов
	if (strlen($excerpt) > $characters) {
		return substr($excerpt, 0, strpos($excerpt, ' ', $characters));
	}
	return $excerpt;
}

add_filter('the_excerpt', custom_excerpt_length');