wp_trim_words() WP 3.3.0

Обрізає переданий текст до вказаної кількості слів.

Допоміжна функція WordPress, яку можна використовувати замість the_excerpt() , щоб вивести частину контенту, обрізану до потрібної кількості слів.

Використовуйте wp_html_excerpt() , коли потрібно обрізати HTML рядок до вказаної кількості символів.

Основа для:
wp_trim_excerpt()

Хуки з функції

Повертає

Строку. Обрізаний текст.

Використання

wp_trim_words($text, $num_words, $more);
$text
(рядок) (обов’язковий)
Текст, який слід обрізати.
$num_words
(число)
Кількість слів. Вказується скільки слів з початку рядка потрібно залишити.


Типово: 55
$more
(рядок)
Текст, що закінчує рядок, якщо рядок було обрізано. За замовчуванням знак крапки –
, щоб показати що це обрізаний текст.


За замовчуванням: ‘…’

Приклади

0

#1 Демонстрація роботи

Приклад показує, як функція працює з кириличними знаками:

$text = "Познер" — щотижнева авторська програма Володимира Познера, яка виходить з листопада 2008 року в нічному ефірі Першого каналу.";

echo wp_trim_words($text, 5, '...');

# Поверне: "Познер" - щотижнева авторська програма ...
0

#2 Аналог the_excerpt()

Наприклад, показує як отримати поточний контент посту і обрізати його до 40 слів і в кінці, якщо потрібно, додати посилання Читать дальше...:

$content = get_the_content();
$trimmed_content = wp_trim_words( $content, 40, '<a href="'. get_permalink() .'"> ...Read More</a>' );
echo $trimmed_content;

список змін

З версії 3.3.0Введено.

Код wp_trim_words() WP 6.0.2

function wp_trim_words( $text, $num_words = 55, $more = null ) {
	if ( null === $more ) {
		$more = __( '…' );
	}

	$original_text = $text;
	$text = wp_strip_all_tags($text);
	$num_words = (int) $num_words;

	/*
	 * translators: If your word count based on single characters (eg East Asian characters),
	 * enter 'characters_excluding_spaces' або 'characters_including_spaces'. Іншіwise, enter 'words'.
	 * Do not translate у вашу own language.
	 */
	if ( strpos( _x( 'words', 'Word count type. Do not translate!' ), 'characters' ) === 0 && preg_match( '/^utf-?8$/i', get_option( 'blog_charset '))) {
		$text = trim( preg_replace( "/[nrt ]+/", ' ', $text ), ' ');
		preg_match_all( '/./u', $text, $words_array );
		$ words_array = array_slice ($ words_array [0], 0, $ num_words + 1);
		$ sep = '';
	} else {
		$words_array = preg_split( "/[nrt ]+/", $text, $num_words + 1, PREG_SPLIT_NO_EMPTY );
		$ sep = '';
	}

	if ( count( $words_array ) > $num_words ) {
		array_pop($words_array);
		$ text = implode ($ sep, $ words_array);
		$text = $text. $more;
	} else {
		$ text = implode ($ sep, $ words_array);
	}

	/**
	 * Filters the text content after words have been trimmed.
	 *
	 * @ Since 3.3.0
	 *
	 * @param string $text The trimmed text.
	 * @param int $num_words Кількість слів до тріму тексту до. Default 55.
	 * @param string $more Ви можете отримати додатковий string для отримання до кінця триммованого тексту, eg ….
	 * @param string $original_text The text before it was trimmed.
	 */
	return apply_filters( 'wp_trim_words', $text, $num_words, $more, $original_text );
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *