get_the_excerpt

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

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

Текст обрезается функцией wp_trim_excerpt()
Хуки из функции:
get_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;
	}
}

Код из


wp-includes/post-template.php

WP 4.7.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 );
}

Комментарии:


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

Your email address will not be published. Required fields are marked *