Получить анонс из $post->post_content
Я изменяю вывод плагина с помощью фильтра, и у меня доступна переменная $post, поэтому я могу отобразить содержимое поста следующим образом:
<h3><?php echo $post->post_title; ?></h3>
<?php echo apply_filters( 'the_excerpt', $post->post_excerpt ); ?>
Однако приведенный выше код отображает анонс только если он был вручную введен в поле "Анонс". Он не показывает усеченную версию содержимого, как это было бы при использовании "the_excerpt" или "get_the_excerpt". Я также пробовал:
<?php echo apply_filters( 'the_excerpt', $post->post_content ); ?>
Но это просто выводит полное содержимое поста.
И я пробовал этот вариант:
<?php echo apply_filters('the_excerpt', get_post_field('post_excerpt', $post->ID)); ?>
Но это ничего не возвращает.
Есть ли способ получить анонс из полного содержимого через $post, когда нельзя использовать the_excerpt или get_the_excerpt?
Спасибо!

Когда вы находитесь в цикле, это создаст отрывок напрямую из $post->post_content
:
<?php echo wp_trim_excerpt(); ?>
Подробнее читайте ЗДЕСЬ.
Альтернативное решение:
Если вы не в цикле, вы можете использовать аналогичную реализацию, как в функции wp_trim_excerpt
:
$text = strip_shortcodes( $post->post_content );
$text = apply_filters( 'the_content', $text );
$text = str_replace(']]>', ']]>', $text);
$excerpt_length = apply_filters( 'excerpt_length', 55 );
$excerpt_more = apply_filters( 'excerpt_more', ' ' . '[…]' );
$text = wp_trim_words( $text, $excerpt_length, $excerpt_more );
echo $text;
