Получение аннотации поста с помощью функции get_the_excerpt()
Функция get_the_excerpt()
позволяет получить аннотацию для текущего или заданного поста. Обычно её используют в цикле WordPress.
Чтобы отобразить аннотацию поста на экране, можно воспользоваться функцией the_excerpt()
. Эта функция автоматически добавляет HTML-тег <p>
к тексту аннотации.
Используемые функции:
the_excerpt_rss()
the_excerpt()
Хуки функци��
get_the_excerpt
Возвращаемое значение
Функция возвращает строку:
-
Если аннотация (post_excerpt) не указана для поста, то будет возвращён начальный фрагмент содержимого поста. Дополнительную информацию можно найти в функции
wp_trim_excerpt()
. Поэтому, чтобы проверить, есть ли аннотация у поста, используйте функциюhas_excerpt()
. -
Если указана "цитата" (excerpt), то вернётся значение этого поля.
-
Для защищённых паролем постов функция всегда возвращает строку: "Аннотация отсутствует, так как это защищённый пост."
Использование функции
get_the_excerpt( $post );
Параметры:
$post
(int|WP_Post) — ID поста или объект WP_Post. По умолчанию используется глобальная переменная$post
.
Примеры использования
Пример 1: Проверка наличия аннотации
Если аннотация не указана, отображаем свой текст:
$my_excerpt = get_the_excerpt();
if( $my_excerpt ){
echo wpautop( $my_excerpt );
} else {
echo wpautop('Аннотация не установлена.');
}
Пример 2: Вывод аннотации с ограничением по символам
С помощью функции get_the_excerpt()
можно отобразить аннотацию с ограничением по количеству символов:
function the_excerpt_limited( $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;
}
}
// Использование в цикле:
Список изменений
- Версия 0.71 — Функция была введена.
- Версия 4.5.0 — Добавлен параметр
$post
.
Код функции get_the_excerpt
Ниже приведён код реализации функции get_the_excerpt
из файла wp-includes/post-template.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 __( 'Аннотация отсутствует, так как это защищённый пост.' );
}
/**
* Фильтрует полученную аннотацию поста.
*
* @param string $post_excerpt Аннотация поста.
* @param WP_Post $post Объект поста.
*/
return apply_filters( 'get_the_excerpt', $post->post_excerpt, $post );
}
Связанные функции
Аннотация (фрагмент, сниппет)
get_extended()
has_excerpt()
the_excerpt()
wp_trim_excerpt()
Цикл WordPress
get_the_author()
get_the_author_link()
get_the_content()
get_the_ID()
get_the_permalink()
the_content()
the_post()
Посты и страницы
edit_post_link()
get_delete_post_link()
get_permalink()
post_password_required()
the_excerpt_rss()
the_title()
Эта информация поможет вам лучше понять, как работает функция get_the_excerpt()
и как её эффективно использовать в ваших проектах на WordPress.