Замечательная функция wp_trim_words в WordPress позволяет легко обрезать текст до указанного количества слов. Если текст содержит HTML тэги, то все тэги будут вырезаны, а иногда такое поведение при обработке текстов не требуется.
Для того что бы HTML сохранился нужно над текстом проделать последовательность действий:
- Обработать сообщение через функцию php htmlentities (Преобразует все возможные символы в соответствующие HTML-сущности)
- Обрезать текст при помощи функции WordPress — wp_trim_words
- Обработать сообщение через функцию php html_entity_decode (Преобразует HTML-сущности в соответствующие им символы)
- Обработать текст через функцию WordPress force_balance_tags (Исправляет неправильные XHTML/HTML теги в тексте: не закрытые, не по-порядку, неправильный синтаксис )
Результатом будет текст обрезанный до нужного количества слов с сохранением HTML тэгов.
Код
1 2 3 4 5 |
$text = htmlentities($text); $text=force_balance_tags(html_entity_decode(wp_trim_words($text, 50, ' ... '))); |
Число 50 в коде — количество слов которое оставит функция wp_trim_words