Est-il possible d'ajuster l'extrait pour qu'il affiche le texte ou une image ou une vidéo?
Les codes suivants permettent d’afficher tout ce qui précède, mais j’aimerais vraiment limiter cela, en fonction de ce qui est inclus dans le message.
<?php
function improved_trim_excerpt($text) {
global $post;
if ( '' == $text ) {
$text = get_the_content('');
$text = apply_filters('the_content', $text);
$text = str_replace('\]\]\>', ']]>', $text);
$text = preg_replace('@<script[^>]*?>.*?</script>@si', '', $text);
$text = strip_tags($text, '<iframe>, <p>, <img>');
$excerpt_length = 66;
$words = explode(' ', $text, $excerpt_length + 1);
if (count($words)> $excerpt_length) {
array_pop($words);
array_Push($words, '[...]');
$text = implode(' ', $words);
}
}
return $text;
}
?>
<?php
remove_filter('get_the_excerpt', 'wp_trim_excerpt');
add_filter('get_the_excerpt', 'improved_trim_excerpt');
?>
Je vous encourage à envisager l'utilisation de formats de publication. Vous pouvez voir ma réponse à une question similaire sur la modification du texte "Lire la suite", mais cela s'appliquerait de la même manière. Pour la partie vidéo, vous souhaiterez peut-être créer un champ personnalisé pour contenir l'URL de la vidéo, mais sinon, j'imagine que ce serait assez simple à configurer.
Plutôt que de filtrer l'extrait, cela vous donnerait également la possibilité de remplacer the_excerpt()
par:
get_template_part( 'excerpt', get_post_format() );
Vous pouvez ensuite utiliser excerpt.php
pour l'extrait de code par défaut/de secours, excerpt-video.php
pour les vidéos et excerpt-image.php
pour les images. Alternativement, vous utiliseriez quelque chose comme ceci dans votre filtre pour tester le format de publication:
if( get_post_format() == 'video' ) { // etc...