Получение аннотации поста с функцией get_the_excerpt()

Получение аннотации поста с помощью функции 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.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *