J'essaie d'obtenir les images en vedette des images de type message personnalisé. J'utilise ce code. Tous mes messages ont des images mais je ne parviens pas à les afficher.
<?php
$posts_array = get_posts(
array(
'posts_per_page' => -1,
'post_type' => 'services',
'tax_query' => array(
array(
'taxonomy' => 'service_categories',
'field' => 'name',
'terms' => $device_name,
)
)
)
);
//show devices
//print_r($posts_array);
foreach ($posts_array as $key) {
//print_r($key);
if ( has_post_thumbnail() ) {
the_post_thumbnail();
echo "yahoo";
}
?><div class="devices_name_" style="cursor: pointer">
<div><?php echo the_post_thumbnail($key->ID); ?></div>
<?php echo $key->post_title; ?>
<input type="hidden" value="<?php echo $key->ID; ?>" class="devices_ids_"/>
</div>
<?php
}
?>
Voici quelques réflexions:
Mais dans votre cas, je ne vois pas vraiment pourquoi vous utilisez get_posts()
la plupart du temps, nous l'utilisons pour obtenir des données de post-traitement et effectuer d'autres traitements. Vous feriez mieux d'utiliser votre propre instance de WP_Query ici comme ceci:
<?php
$_posts = new WP_Query (
array(
'nopaging' => true,
'post_type' => 'services',
'tax_query' => array(
array(
'taxonomy' => 'service_categories',
'field' => 'name',
'terms' => $device_name,
)
)
)
);
if ( $_posts->have_posts() ) :
while ( $_posts->have_posts() ) : $_posts->the_post(); ?>
<div class="devices_name_" style="cursor: pointer">
<?php if ( has_post_thumbnail() ) : ?>
<div><?php the_post_thumbnail(); ?></div>
<?php endif; ?>
<?php the_title(); ?>
<input type="hidden" value="<?php the_ID(); ?>" class="devices_ids_"/>
</div>
<?php endwhile; wp_reset_postdata();
endif;
de cette façon, vous pouvez utiliser des fonctions qui fonctionnent dans la boucle. Attention, the_post_thumbnail () prend un paramètre de taille. Par défaut, sa taille est "post-vignette".