get_the_excerpt() – возвращает отрывок (цитату) записи

Если в функцию не передавать значение параметра, то она вернёт отрывок текущей записи в цикле. Смотрите мой видеоурок про циклы WordPress.

get_the_excerpt( $post = null )
$post
(целое|WP_Post) Передайте в функцию ID какого-то конкретного поста или его объект, если вам нужно получить его отрывок / начало контента. По умолчанию будет возвращена цитата текущего поста в цикле. Кстати, параметр появился в версии 4.5, до этого без него было грустновато.

Функция возвращает:

  • Всё то, что в поле «Отрывок» (когда-то он назывался «Цитата») для текущей записи в цикле.
  • Если поле «Отрывок» не заполнено, функция будет обрезать контент записи по заданной длине, игнорируя тег <!--more-->, по умолчанию 55 слов, читайте тут, как изменить. А ещё в конце такого отрывка добавляются символы [&hellip;], которые тоже можно изменить.
  • Кроме того, отрывок не будет выводиться для записей, защищённых паролем.

Пример. Выводим отрывок, только если заполнен

Выводим отрывок поста с ID = 5, проверяем функцией has_excerpt(), если отрывок не задан, тогда не выводим обрезанный контент и вообще ничего:

$post_id = 5;
 
if( has_excerpt( $post_id ) {
	echo get_the_excerpt( $post_id );
}

Также вы можете вывести отрывок уже с применением фильтров при помощи функции the_excerpt().

Фильтр get_the_excerpt

У функции есть фильтр get_the_excerpt, который применяется в самом конце функции на отрывок из объекта поста $post->post_excerpt. По сути именно этот фильтр по умолчанию и делает работу по обрезке цитаты из контента, применяя к ней функцию wp_trim_excerpt().

Мы же, при помощи этого фильтра давайте сделаем так, чтобы цитата никогда не выводилась для поста с ID=5.

add_filter( 'get_the_excerpt', 'true_no_excerpt_for_post_5', 25, 2 );
 
function true_no_excerpt_for_post_5( $excerpt, $post ) {
 
	if( 5 === $post->ID ) {
		$excerpt = '';
	}
	return $excerpt;
 
}

Не знаете, куда вставлять код?

Миша

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Если вам нужна помощь с сайтом или разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда будем рады вам помочь!

Оставить комментарий

Если вы хотите добавить код, не забудьте обернуть его в <pre lang="php"></pre>, если же код – меньше одной строчки, то можно и в <code></code>.