Obține fragmentul din $post->post_content
Modific rezultatul unui plugin folosind un filtru, iar variabila $post este disponibilă, așa că pot afișa conținutul postării astfel:
<h3><?php echo $post->post_title; ?></h3>
<?php echo apply_filters( 'the_excerpt', $post->post_excerpt ); ?>
Totuși, codul de mai sus afișează fragmentul doar dacă acesta a fost completat în câmpul dedicat. Nu afișează o versiune trunchiată a conținutului, așa cum ar face dacă ai putea folosi "the_excerpt" sau "get_the_excerpt". Am încercat și:
<?php echo apply_filters( 'the_excerpt', $post->post_content ); ?>
Dar asta returnează întregul conținut al postării.
Și am încercat și asta:
<?php echo apply_filters('the_excerpt', get_post_field('post_excerpt', $post->ID)); ?>
Dar nu returnează nimic.
Există vreo metodă prin care să obțin fragmentul din conținutul complet al postării când nu pot folosi the_excerpt sau get_the_excerpt?
Mulțumesc!

Când sunteți în bucla principală, acest cod va genera un fragment din $post->post_content
direct:
<?php echo wp_trim_excerpt(); ?>
Citiți mai multe AICI.
Soluție alternativă:
Dacă nu sunteți în bucla principală, atunci puteți folosi o implementare similară cu cea din funcția 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;
