WordPress как на ладони
Прибыльная монетизация. Выгодно. Безопасно. Стабильно.

the_excerpt()WP 0.71

Выводит "отрывок" (цитату) поста или первые 55 слов контента, со вставкой в конец [...].

Используется внутри Цикла WordPress.

Если "Отрывок" не указан (указывается при создании поста), то функция "создаст" его самостоятельно из первых 55 слов контента. HTML теги, шорткоды и графика при этом будут вырезаны (они не будут учитываться при подсчете слов).

Если "Отрывок" указан, то он будет выведен как есть. Конструкция [...] не добавляется в конец в этом случае.

Если текущая запись является вложением (выводится на странице: attachment.php или image.php), то эта функция выведет текст указанный в поле "описание" (caption) и текст не будет иметь на конце конструкции [...].

Итоговый текст (результат работы функции) пропускается через фильтр the_excerpt, который среди прочего обрабатывает текст функцией wpautop() - оборачивает цитату в тег <p>.

Отличие от the_content()

Эта функция не обрабатывает тег <!--more--> в контенте записи, поэтому иногда лучше использовать the_content().

В качестве альтернативы этой функции можно использовать мою функцию kama_excerpt(). Она работает быстрее и имеет ряд своих преимуществ.

Работает на основе: get_the_excerpt()
1 раз — 0.024946 сек (тормоз) | 50000 раз — 39.68 сек (очень медленно) | PHP 7.4.8, WP 5.8
Хуки из функции

Возвращает

null. Ничего. Выводит на экран короткий текст.

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

<?php the_excerpt(); ?>

Примеры

3

#1 Создаем ссылку "Читать дальше..." на конце

Опять используем фильтр excerpt_more (для 2.9+). Скопируйте такой код в файл темы functions.php:

add_filter( 'excerpt_more', 'new_excerpt_more' );
function new_excerpt_more( $more ){
	global $post;
	return '<a href="'. get_permalink($post) . '">Читать дальше...</a>';
}
0

#2 Базовое использование

Выведем "Цитату" поста на страницах архивов (категории, метки, авторы, даты):

<?php the_excerpt(); ?>
0

#3 Использование вместе с условными тегами

Проверим является ли данная страница разделом категории, если да, то заменим the_content() на the_excerpt():

if ( is_category() ) {
	the_excerpt();
}
else {
	the_content();
}
0

#4 Изменение длины обрезаемого текста

По умолчанию, длина по которому режется текст - это 55 слов, чтобы изменить этот параметр, можно использовать фильтр excerpt_length, для этого поместите такой код в файл темы functions.php:

add_filter( 'excerpt_length', function(){
	return 20;
} );
0

#5 Удаление конструкции [...] на конце

По умолчанию, если текст обрезается, то в конце добавляется [...], изменить [...] можно через фильтр excerpt_more. Добавим такой код в файл темы functions.php:

add_filter( 'excerpt_more', function( $more ) {
	return '...';
} );

// в php 7.4+ можно сократить так:
add_filter( 'excerpt_more', fn() => '...' );

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

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

Код the_excerpt() WP 6.1.1

function the_excerpt() {

	/**
	 * Filters the displayed post excerpt.
	 *
	 * @since 0.71
	 *
	 * @see get_the_excerpt()
	 *
	 * @param string $post_excerpt The post excerpt.
	 */
	echo apply_filters( 'the_excerpt', get_the_excerpt() );
}
39 комментариев
Полезные 2 Вопросы 1 Все
    Войти