web-dev-qa-db-fra.com

impossible d'afficher l'image sélectionnée du type de message personnalisé

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
}
?>
1
Chaudhry Waqas

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".

0
JMau