Как ограничить количество символов в отрывке?
Возможный дубликат:
отрывок в символах
У меня возник вопрос после прочтения этого поста (Как подсветить поисковые термины без плагина). Мне очень нравится эта функция (Поисковый Термин Без Плагина), но длина символов слишком большая. Какой PHP-код нужно добавить, чтобы сделать отрывок короче? Буду признателен, если кто-то сможет предложить решение. Спасибо!

В дополнение к вышеуказанному хуку фильтра, предоставленному в ответе Deepa, вот еще одна функция, которая может помочь расширить использование the_excerpt
двумя способами:
Позволяет вам...
Ограничить отрывок по количеству символов, но НЕ обрезать последнее слово. Это позволит вам вернуть максимальное количество символов, сохраняя при этом полные слова, так что возвращаются только слова, которые помещаются в указанный лимит, а также позволяет указать источник, откуда будет взят отрывок.
function get_excerpt($limit, $source = null){
$excerpt = $source == "content" ? get_the_content() : get_the_excerpt();
$excerpt = preg_replace(" (\[.*?\])",'',$excerpt);
$excerpt = strip_shortcodes($excerpt);
$excerpt = strip_tags($excerpt);
$excerpt = substr($excerpt, 0, $limit);
$excerpt = substr($excerpt, 0, strripos($excerpt, " "));
$excerpt = trim(preg_replace( '/\s+/', ' ', $excerpt));
$excerpt = $excerpt.'... <a href="'.get_permalink($post->ID).'">подробнее</a>';
return $excerpt;
}
/*
Пример... Lorem ipsum habitant morbi (26 символов всего)
Возвращает первые три слова, что составляет ровно 21 символ, включая пробелы
Пример.. echo get_excerpt(21);
Результат... Lorem ipsum habitant
Возвращает то же, что и выше, недостаточно символов в лимите для возврата последнего слова
Пример.. echo get_excerpt(24);
Результат... Lorem ipsum habitant
Возвращает все 26 символов нашего контента, задан лимит в 30 символов, но нужно только 26.
Пример.. echo get_excerpt(30);
Результат... Lorem ipsum habitant morbi
*/
Эту функцию можно использовать многократно в файлах темы, каждый раз с разными ограничениями по количеству символов.
Эта функция имеет возможность извлекать отрывок из:
the_content
the_excerpt
Например, если у вас есть записи, содержащие текст в поле the_excerpt в редакторе записей, но для особого случая нужно получить отрывок из тела the_content, вы можете сделать так:
get_excerpt(140, 'the_content'); //отрывок берется из get_the_content
Это указывает функции, что вы хотите получить первые 140 символов из the_content
, независимо от того, установлен ли отрывок в поле the_excerpt
.
get_excerpt(140); //отрывок берется из get_the_excerpt
Это указывает функции, что вы хотите получить первые 140 символов сначала из the_excerpt
, и если отрывок не существует, в качестве резервного варианта будет использован the_content
.
Функцию можно улучшить, чтобы сделать ее более эффективной, или интегрировать с использованием фильтров WordPress как для the_content
, так и для the_excerpt
, либо просто использовать как есть в ситуациях, когда нет подходящей встроенной альтернативы в API WordPress.

Привет! Спасибо всем за предоставленные ответы! Хотелось бы спросить, как сделать, чтобы в конце анонса вместо [...] были ...?

Последняя строка $excerpt = $excerpt.'... <a href="'.get_permalink($post->ID).'">подробнее</a>';
- это то, что вы можете использовать для определения вашей ссылки "читать далее". Как видите, там добавляется многоточие, но вы можете добавить что угодно.

@Jornes возможно, это на 6 лет поздно, но вот HTML-код для многоточия …

@NavnishBhardwaj 999 — это приоритет загрузки фильтра. Подробнее можно узнать здесь. https://developer.wordpress.org/reference/functions/add_filter/
