the_excerpt

Выводит отрывок (цитату) поста, со вставкой в конец […] (но это не ссылка на прочтение полного материала).

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

the_excerpt() нужно использовать внутри Цикла WordPress.

Заметка: Если текущая запись является вложением (обычно выводится в цикла файлов шаблона: attachment.php и image.php), то the_excerpt() выведет текст указанный в поле “описание” (Caption) и текст не будет иметь на конце конструкции […].
the_excerpt() и the_content()

Иногда лучше использовать the_content(), потому что она понимает тег <!–more–>, указанный в контенте записи и выводит то, что выше этого тега.

Хуки из функции:
the_excerpt
Возвращает

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

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

<?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:

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

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

Для версий 2.9+ (2.9 или выше)!
По умолчанию, если текст обрезается, то в конце добавляется […], изменить […] можно через фильтр 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->ID) . '">Читать дальше......</a>';
}

Заметки

  • Использует: get_the_excerpt();

  • Использует фильтр the_excerpt;

  • C версии 2.9 использует фильтр excerpt_more.

Код из


wp-includes/post-template.php

WP 4.7.2

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