Je voudrais créer une condition qui vérifie si un message a une vignette et s'il l'affiche, sinon affiche la première image d'un message.
J'ai essayé quelque chose comme ceci dans mon loop.php mais cela n'a pas semblé fonctionner:
<?php if (has_post_thumbnail()) { ?>
<a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(array(640,320)); ?></a>
<?php } else { ?>
<a href="<?php the_permalink(); ?>"><img src="<?php echo catch_that_image(); ?>" /></a>
<?php } ?>
Cela va dans mon fichier functions.php:
<?php
function catch_that_image() {
global $post, $posts;
$first_img = '';
ob_start();
ob_end_clean();
$output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
$first_img = $matches [1] [0];
// no image found display default image instead
if(empty($first_img)){
$first_img = get_bloginfo('template_url')."/images/no_image.gif";
}
return $first_img;
}
$imgURL = catch_that_image();
?>
Obtenir l'image fait ce dont vous avez besoin et mieux. Ce n'est pas écrasant avec beaucoup de fonctionnalités inutiles, et fait ce qu'il dit. Essayez-le pour voir s'il fait ce dont vous avez besoin.
Comment Get the Image plugin extrait-il les images?
Recherche une image par champ personnalisé (celui de votre choix).
Si aucune image n'est ajoutée par un champ personnalisé, recherchez une image à l'aide de the_post_thumbnail () (nouvelle fonctionnalité d'image de WP 2.9).
Si aucune image n'est trouvée, une image est jointe à votre message.
Si aucune image n'est jointe, il peut extraire une image de votre contenu de publication (désactivée par défaut).
Si aucune image n'est trouvée à ce stade, il s'agira par défaut d'une image que vous avez définie (non définie par défaut).
Cela devrait le faire, je l'utilise et c'est super facile et simple, il suffit de le coller dans votre functions.php
:
function autoset_featured() {
global $post;
$already_has_thumb = has_post_thumbnail($post->ID);
if (!$already_has_thumb) {
$attached_image = get_children(
"post_parent=$post->ID&post_type=attachment&post_mime_type=image&numberposts=1"
);
if ($attached_image) {
foreach ($attached_image as $attachment_id => $attachment) {
set_post_thumbnail($post->ID, $attachment_id);// the size of the thumbnail is defined in a function above
}
}
}
} //end function
add_action('the_post', 'autoset_featured');
add_action('save_post', 'autoset_featured');
add_action('draft_to_publish', 'autoset_featured');
add_action('new_to_publish', 'autoset_featured');
add_action('pending_to_publish', 'autoset_featured');
add_action('future_to_publish', 'autoset_featured');