Функция WP_TRIM_EXCERPT() в WordPress
Функция WP_TRIM_EXCERPT()
генерирует отрывок (эксперт) из содержимого записи, если это необходимо. Она возвращает не больше 55 слов, добавляя многоточие в конце, если это нужно.
Этот лимит в 55 слов можно изменить с помощью фильтра excerpt_length
, а строку многоточия можно изменить с помощью фильтра excerpt_more
.
Применение функции
Функция используется внутри wp_trim_words()
, которая является вспомогательной для создания отрывков.
Хуки функции
the_content
excerpt_length
excerpt_more
wp_trim_excerpt
Возвращаемое значение
Функция возвращает строку — отрывок текста.
Как использовать
Синтаксис
wp_trim_excerpt( $text, $post );
- $text (string): Отрывок текста. Если он пуст, отрывок будет сгенерирован автоматически. По умолчанию:
''
- $post (WP_Post|object|int): Экземпляр WP_Post или ID записи. По умолчанию:
null
Примеры использования
Пример 1: Получение специального отрывка для записи
Если у нас есть отдельные цитаты для записей и мы хотим проверить, есть ли такой отрывок, а если его нет, вывести обрезанный текст текущей записи:
$excerpt = get_post_meta( $post->ID, 'special_excerpt', 1 );
$text = wp_trim_excerpt( $excerpt );
echo $text;
Пример 2: Вывод короткого текста (отрывка) для записи
Если отрывок уже имеется, и мы просто хотим его получить:
echo "Вот короткая информация о записи: n" . wp_trim_excerpt( $excerpt );
Если го��ового отрывка нет, можно передать ID записи, и функция создаст отрывок на основе содержимого:
echo "Вот короткая информация о записи: n" . wp_trim_excerpt( '', $post_id );
Записи изменений
- С 1.5.0: Функция введена.
- С 5.2.0: Добавлен параметр
$post
. - С 6.3.0: Удаляет разметку сносков из содержимого отрывка.
Код функции
Вот код, который реализует функцию wp_trim_excerpt
в файле wp-includes/formatting.php
:
function wp_trim_excerpt( $text = '', $post = null ) {
$raw_excerpt = $text;
if ( '' === trim( $text ) ) {
$post = get_post( $post );
$text = get_the_content( '', false, $post );
$text = strip_shortcodes( $text );
$text = excerpt_remove_blocks( $text );
$text = excerpt_remove_footnotes( $text );
$filter_image_removed = remove_filter( 'the_content', 'wp_filter_content_tags', 12 );
$filter_block_removed = remove_filter( 'the_content', 'do_blocks', 9 );
$text = apply_filters( 'the_content', $text );
$text = str_replace( ']]>', ']]>', $text );
if ( $filter_block_removed ) {
add_filter( 'the_content', 'do_blocks', 9 );
}
if ( $filter_image_removed ) {
add_filter( 'the_content', 'wp_filter_content_tags', 12 );
}
$excerpt_length = (int) _x( '55', 'excerpt_length' );
$excerpt_length = (int) apply_filters( 'excerpt_length', $excerpt_length );
$excerpt_more = apply_filters( 'excerpt_more', ' ' . '[…]' );
$text = wp_trim_words( $text, $excerpt_length, $excerpt_more );
}
return apply_filters( 'wp_trim_excerpt', $text, $raw_excerpt );
}
Связанные функции
get_extended()
get_the_excerpt()
has_excerpt()
the_excerpt()
Эта статья поможет вам лучше понять, как использовать и настраивать функцию WP_TRIM_EXCERPT()
для создания отрывков в ваших записях WordPress.