WordPress как на ладони
wordpress jino

get_the_excerpt() WP 0.71

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

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

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

Используется в: the_excerpt_rss(), the_excerpt().
Хуки из функции:
Возвращает

Строку.

  • Если у поста не указана «цитата» (post_excerpt), то будет получен начальный отрывок текущей записи. Подробнее смотрите код функции wp_trim_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.2

<?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 8 комментариев
  • Сергей

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

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

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

      Ответить5 лет назад #
  • Андрей

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

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

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

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

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

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

    • campusboy1833 cайт: wp-plus.ru @

      Верное замечание. Прошло более 2 лет, а статья до сих пор не поправлена smile

      Ответить7 дней назад #
      • Kama4486

        Где что нужно поправить, все вроде правильно написано?
        get_the_excerpt - вернет строку пустую или нет.
        has_excerpt - вернет true/false
        unknw

        Ответить4 дня назад #
  • andrii

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

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

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

    Ответитьмесяц назад #

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

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