wp_html_excerpt()WP 2.5.0

Безопасно извлекает указанное кол-во символов из указанной HTML-строки.

Что делает функция:

  1. Вырезает все HTML теги.
  2. Обрезает строку до указанного кол-ва символов (безопасно для UTF-8 символов).

Сущности внутри НЕ будут считаться как один символ. Например, & будет считаться как 5, < как 4 и т.д.

Используйте wp_trim_words(), когда нужно обрезать строку до указанного кол-ва слов.

Работает на основе: wp_strip_all_tags()
1 раз — 0.0000191 сек (очень быстро) | 50000 раз — 0.10 сек (скорость света) | PHP 7.4.25, WP 6.0.1

Хуков нет.

Возвращает

Строку. Обрезанную строку.

Использование

wp_html_excerpt( $str, $count, $more );
$str(строка) (обязательный)
Строка, которую нужно обрезать.
$count(int) (обязательный)
До скольки символов обрезать указанную строку.
$more(строка)

Строка, которую нужно добавить в конце, если указанный текст обрезается (больше указанного кол-ва символов).

Тут обычно добавляют троеточие: ... или его смвол ….

По умолчанию: empty string

Примеры

0

#1 Обрежем HTML строку с текстом

Например, нам нужно образеть получаемую из БД строку до 40 символов. Строка содержит HTML код.

$text = '<div>Some text, Επίπεδο 3</div> Neque porro <b>quisquam</b> est qui …';

echo wp_html_excerpt( $text, 40, '&hellip;' );

// Получим:
// Some text, Επίπεδο 3 Neque porro quisqua&hellip;

Список изменений

С версии 2.5.0 Введена.

Код wp_html_excerpt() WP 6.5.2

function wp_html_excerpt( $str, $count, $more = null ) {
	if ( null === $more ) {
		$more = '';
	}

	$str     = wp_strip_all_tags( $str, true );
	$excerpt = mb_substr( $str, 0, $count );

	// Remove part of an entity at the end.
	$excerpt = preg_replace( '/&[^;\s]{0,6}$/', '', $excerpt );

	if ( $str !== $excerpt ) {
		$excerpt = trim( $excerpt ) . $more;
	}

	return $excerpt;
}