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

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

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

Используем функцию 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;
	}
}

Смотрите также заметку по замене этой функции на свою: Обрезка текста и/или замена стандартной функции the_excerpt()

0

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

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

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

Список изменений

С версии 0.71 Введена.
С версии 4.5.0 Introduced the $post parameter.

Код get_the_excerpt() WP 6.5.2

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 );
}
5 комментариев
    Войти