WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

the_excerpt() WP 0.71

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

Ищем WP-разработчика! Фулл-тайм, удаленка, хорошая зарплата, соц. пакет. Подробности.
Компания Boosta.

Используется внутри Цикла 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(); ?>

Примеры

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

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

<?php the_excerpt(); ?>

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

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

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

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

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

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

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

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

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

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

Опять используем фильтр 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.71 Введена.

Код the_excerpt() WP 5.8.2

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() );
}

excerpt (цитата отрывок фрагмент)

loop (Цикл WP)

Записи: посты, страницы, ...

Записи: посты, страницы, ...

44 коммента
Полезные 2 Вопросы 3 Все
    Войти