web-dev-qa-db-fra.com

Comment puis-je afficher la vignette du dernier type de message dans un widget?

J'utilise l'excellent plugin PHP Code Widget , et je veux créer un widget qui affiche la vignette de la publication (c'est-à-dire l'image sélectionnée) pour la plus récente. ' projet 'post. Voici le code que j'ai jusqu'à présent, mais il ne produit pas le résultat souhaité. Cela ne produit en réalité rien.

<?php
global $post;
$args = array(
    'post_type' => 'project',
    'posts_per_page' => 1,
    ); 
$thumbnails = get_posts($args);
foreach ($thumbnails as $post)
{
    setup_postdata($post);
        ?>
        <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail( 'thumbnail' ); ?></a>
        <?php 
        }

Des suggestions sur ce que je dois changer pour que cela fonctionne?

1
Travis Northcutt

S'installer ici pour que les commentaires ne se transforment pas en désordre.

En gros, il y a deux choses qui peuvent aller mal ici:

  1. Récupération des messages. Vérifiez que $thumbnails obtient le post correct et un seul. Je ne suis pas sûr que ce soit le problème, mais get_posts() docs list l'argument numberposts au lieu de posts_per_page qui est répertorié pour query_posts(). Cela pourrait faire une différence.

  2. Jouer avec les variables globales. Pour cet usage, je ne toucherais pas du tout au $post global, ni directement ni avec setup_postdata(). Utilisez simplement des versions non-bouclées de fonctions pouvant extraire tout ce dont vous avez besoin par post id - get_permalink() et get_the_post_thumbnail() .

3
Rarst