Функция WP_TRIM_EXCERPT() в WordPress: применение, хуки, примеры

Функция 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.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *