web-dev-qa-db-fra.com

la fonction the_excerpt peut-elle également obtenir des images?

Je ne sais pas si je vais y aller de la bonne façon, mais dans l’ensemble, on m'a dit de créer, un peu comme une boîte de nouvelles sur ma page d’accueil et ainsi, les "dernières nouvelles" seront les publications de nos clients.

maintenant, je sais que je peux contrôler la longueur du contenu de the_excerpts(); etc.

lorsque j'ai montré à la cliente la "boîte de nouvelles", il souhaitait que l'image, quelle qu'elle soit, soit associée à la publication.

donc j'ai pensé à "the_content();" mais je ne pense pas que c'est ce dont j'ai besoin (même si je ne suis pas sûr de celui qui fonctionnera le mieux avec ce dont j'ai besoin)

donc les principales questions ici pour moi sont

  1. Puis-je en quelque sorte obtenir l'image à travers l'extrait, ou
  2. Si la fonction d'extrait ne le permet pas, que puis-je utiliser?
3
somdow

Assurez-vous que votre thème prend en charge Post Thumbnails et que le client définit une "Image en vedette" pour chaque message. Ensuite, combinez the_excerpt() avec the_post_thumbnail() , par ex. ainsi:

<?php
if ( have_posts() ) : while ( have_posts() ) : the_post();

    ?>
    <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>

        <div class="featured-image"><?php the_post_thumbnail(); ?></div>
        <div class="post-excerpt"><?php the_excerpt(); ?></div>

    </div>
    <?php

endwhile; endif;
?>

Ensuite, utilisez simplement CSS pour styler selon vos besoins.

6
Chip Bennett

Avez-vous essayé d'utiliser get_the_post_thumbnail()? Vous pouvez en savoir plus sur le Codex ici . Il tire une vignette de l'image sélectionnée du post.

2
SickHippie

Placez ceci dans votre fichier functions.php:

remove_filter('get_the_excerpt', 'wp_trim_excerpt');
add_filter('get_the_excerpt', 'preserve_excerpt_format');
function preserve_excerpt_format($text)
{
    global $post;
    $raw_excerpt = $text;
    if ('' == $text )
    {
        $text = get_the_content('');
        $text = strip_shortcodes($text);
        $text = apply_filters('the_content', $text);
        $text = str_replace(']]>', ']]&gt;', $text);

        $exceptions = '<p>,<a>,<em>,<strong>,<br><img>'; //PRESERVE THESE TAGS, ADD/REMOVE AS NEEDED
        $text = strip_tags($text, $exceptions);

        $maxCount = 55; //DEFAULT WP Word COUNT, INCREASE AS NEEDED
        $excerpt_length = apply_filters('excerpt_length', $maxCount);

        $moreText = '.... <a class="blue" href="'.get_permalink($post->ID).'">Read More &gt;&gt;</a>'; //CUSTOM MORE TEXT, CHANGE AS NEEDED
        $excerpt_more = apply_filters('excerpt_more', $moreText);

        $words = preg_split("/[\n\r\t ]+/", $text, $excerpt_length+1, PREG_SPLIT_NO_EMPTY);
        if(count($words) > $excerpt_length)
        {
            array_pop($words);
            $text = implode(' ', $words);
            $text = $text.$excerpt_more;
        }
        else
            $text = implode(' ', $words);
    }
    return apply_filters('wp_trim_excerpt', $text, $raw_excerpt);
}

Cela devrait conserver toutes les images apparaissant dans le contenu HTML du contenu avant que la limite de mots ne soit atteinte.

0
maiorano84