web-dev-qa-db-fra.com

Un moyen simple de définir automatiquement la première image intégrée dans un message en tant que vignette?

Y a-t-il un plugin pour cela? Quelqu'un l'a-t-il déjà fait?

3
0al0

J'utilise le Auto Post Thumbnail plugin pour le faire sur ce site et cela fonctionne bien. La première image d'un article devient l'image sélectionnée à chaque fois.

2
Matt Gibson

Vous pouvez trouver la réponse dans ce didacticiel: Comment définir une image de secours par défaut pour les miniatures de post WordPress

Ajoutez ceci dans functions.php dans votre dossier de thème:

add_theme_support( 'post-thumbnails' );

function myprefix_main_image() {
    $attachments = get_children( 'post_parent='.$post->ID.'&post_type=attachment&post_mime_type=image&order=desc' );
    if( $attachments ) {
        $keys = array_reverse( $attachments );
        set_post_thumbnail( $post->ID, $keys[0]->ID );
    }; 
}

Et ceci dans votre modèle, où vous souhaitez afficher l'image de publication:

<?php if ( (function_exists( 'has_post_thumbnail') ) && ( has_post_thumbnail() ) ) {
  echo get_the_post_thumbnail( $post->ID );
} else {
   myprefix_main_image();
   echo get_the_post_thumbnail( $post->ID );
} ?>

EDIT: beaucoup mieux, merci Chip Bennett

5
mike23

Get The Image est un excellent plugin pour les fonctionnalités associées. Vous aurez besoin de configurer un peu l’appel de funciton, mais il sera capable à la fois de rechercher une image et l'enregistrer dans la vignette pour vous. A été écrit rapidement et un peu foiré. Ce qu’elle peut faire, c’est enregistrer l’image trouvée dans un champ personnalisé (ce qui peut être ou ne pas être ce que vous voulez). Si vous voulez réellement en faire une image, cela sera considérablement plus complexe.

2
Rarst