WordPress как на ладони
Наставник Трепачёв Д.П., phphtml.net wordpress jino

get_the_excerpt() WP 0.71

Получает цитату поста. Используется внутри цикла WP.

Чтобы сразу вывести на экран цитату, можно использовать функцию the_excerpt(), которая к тому же добавляет параграф HTML (<p></p>) к цитате.

Текст обрезается функцией wp_trim_excerpt()

Используется в: the_excerpt_rss(), the_excerpt().
Хуки из функции:
Возвращает
  • пустую строку, если у поста не указана "цитата". Когда плагины обрабатывают эту функцию через хук, может вернуть начало текста статьи, а не пустую строку, тогда чтобы проверить есть ли цитата, используйте has_excerpt().

  • для постов защищенных паролем, возвращает строку с текстом по умолчанию: "Нет цитаты, потому что пост защищен паролем.". Этот текст можно изменить через фильтр.

  • Если цитата указана и пост не защищен паролем, то получит значение поля "цитата".

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

$excerpt = get_the_excerpt( $post );
$post(число/WP_Post) (обязательный)
ID или объект записи, цитату которой нужно получить. С версии 4.5.
По умолчанию: null (текущий пост)

Примеры

#1. Пример, проверки наличия цитаты.

Если цитата не указана, то выводим свой текст или делает что-либо другое:

$my_excerpt = get_the_excerpt();
if ( $my_excerpt ){
	echo wpautop( $my_excerpt );
}
else {
	echo wpautop('Цитата не установлена.');
}

#2. Вывод цитаты с ограничением символов

Используем функцию get_the_excerpt(), чтобы вывести на экран цитату ограниченную максимум символов:

the_excerpt_max_charlength(140);

function the_excerpt_max_charlength( $charlength ){
	$excerpt = get_the_excerpt();
	$charlength++;

	if ( mb_strlen( $excerpt ) > $charlength ) {
		$subex = mb_substr( $excerpt, 0, $charlength - 5 );
		$exwords = explode( ' ', $subex );
		$excut = - ( mb_strlen( $exwords[ count( $exwords ) - 1 ] ) );
		if ( $excut < 0 ) {
			echo mb_substr( $subex, 0, $excut );
		} else {
			echo $subex;
		}
		echo '[...]';
	} else {
		echo $excerpt;
	}
}

Код get the excerpt: wp-includes/post-template.php WP 4.8.1

<?php
function get_the_excerpt( $post = null ) {
	if ( is_bool( $post ) ) {
		_deprecated_argument( __FUNCTION__, '2.3.0' );
	}

	$post = get_post( $post );
	if ( empty( $post ) ) {
		return '';
	}

	if ( post_password_required( $post ) ) {
		return __( 'There is no excerpt because this is a protected post.' );
	}

	/**
	 * Filters the retrieved post excerpt.
	 *
	 * @since 1.2.0
	 * @since 4.5.0 Introduced the `$post` parameter.
	 *
	 * @param string $post_excerpt The post excerpt.
	 * @param WP_Post $post Post object.
	 */
	return apply_filters( 'get_the_excerpt', $post->post_excerpt, $post );
}

Cвязанные функции

Из метки: excerpt (цитата)

Еще из метки: loop (Цикл WP)

Еще из раздела: Записи: посты, страницы, ...

get_the_excerpt 6 комментариев
  • Сергей
    @

    Здравствуй, Тимур! Тема выводит текст поста целиком, а хотелось чтобы на главной отображались анонсы. Не совсем разобрался с кодами куда(в какие файлы) и что (какой код) вставить чтобы заработало. Всё пока тестирую под денвером.

    1
    Ответить5 лет назад #
    • Kama4472

      Куда вставлять, зависит от темы (шаблона). Подсказать не могу.

      Ответить4.9 года назад #
  • Андрей

    get_the_excerpt() больше не возвращает пустую строку. при пустой цитате возвращает обрезок начала поста.
    А вот как проверить пустая цитата или нет, пока не понял.
    И спасибо за ваш труд! good

    Ответить2.3 года назад #
    • Я так проверяю и в зависимости от результата вывожу то, что нужно:

      <? if(has_excerpt()){
      				the_excerpt();
      				} else {
      						the_content('');
      				}?>

      Может вам поможет.

      3
      Ответить2.3 года назад #
    • Андрей

      Функция has_excerpt() возвращает true или false в зависимости от того, задан отрывок или нет.

  • andrii
    @

    Добрый день! Такая задача, возможно кто-то поможет: на странице статьи нужно вывести слева фото, а справа excerpt (выделенный жирным) и сразу за ним, со следующего абзаца, текст статьи.
    Сделал в файле шаблона:

    <?php
    					// The Excerpt of the article
    						the_excerpt(); ?></div>
    
    						<?php
    						// The Content.
    						the_content(); ?>

    но, как видно, excerpt выводится вверху, а под ним, слева - фото, справа - текст статьи. Как вывести excerpt в the_content()?

    Ответить23 дня назад #

Здравствуйте, !

Ваш комментарий