Je modifie la sortie d'un plugin en utilisant un filtre, et la variable $ post m'est disponible, ainsi je peux afficher le contenu de la publication comme suit:
<h3><?php echo $post->post_title; ?></h3>
<?php echo apply_filters( 'the_excerpt', $post->post_excerpt ); ?>
Cependant, ce qui précède n'affiche l'extrait que si le contenu a été saisi dans le champ extrait. Il ne montre pas une version tronquée du contenu comme ce serait le cas si vous pouviez utiliser "the_excerpt" ou "get_the_excerpt". J'ai aussi essayé:
<?php echo apply_filters( 'the_excerpt', $post->post_content ); ?>
Mais cela ne contient que le contenu complet du message.
Et j'ai essayé ceci:
<?php echo apply_filters('the_excerpt', get_post_field('post_excerpt', $post-ID)); ?>
Mais cela ne retourne rien.
Est-il possible d'extraire l'extrait du contenu complet de $ post lorsque je ne peux pas utiliser the_excerpt ou get_the_excerpt?
Je vous remercie!
Lorsque vous vous trouvez dans la boucle , cela produira un extrait de $post->post_content
directement:
<?php echo wp_trim_excerpt(); ?>
En savoir plus ICI .
Si vous n'êtes pas dans la boucle , vous pouvez utiliser une implémentation similaire à celle utilisée dans la fonction 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;