使用缩略图获取最近发布的帖子

时间:2016-11-10 作者:Pravayest Pravayest

我想读几篇最近的帖子。所以我使用wp\\u get\\u recent\\u posts。但我只得到第一张图片。

<?php $args = array( \'numberposts\' => \'3\' );

$recent_posts = wp_get_recent_posts($args);
foreach( $recent_posts as $recent ){
    echo \'<li><a href="\' . get_permalink($recent["ID"]) . \'">\' . $recent["post_title"].\'</a> </li> \';
        if ( has_post_thumbnail() ) { 
        the_post_thumbnail(\'thumbnail\');
    }
}
?>

2 个回复
最合适的回答,由SO网友:Syed Fakhar Abbas 整理而成

实际上,条件总是返回false,因为您没有将post id传递给函数has_post_thumbnail() 函数总是得到默认值null.

has_post_thumbnail( $recent["ID"] ).

与函数相同get_the_post_thumbnail().

get_the_post_thumbnail( $recent["ID"] ).


$args = array( \'numberposts\' => \'3\' );

$recent_posts = wp_get_recent_posts($args);

foreach( $recent_posts as $recent ){
   if ( has_post_thumbnail( $recent["ID"]) ) {
      echo  get_the_post_thumbnail($recent["ID"],\'thumbnail\');
    }
}
但是如果你使用这些函数has_post_thumbnail();get_the_post_thumbnail() WordPress内部The_Loop 那么你就不需要通过post id。


$args = array( \'posts_per_page\' => \'3\' );
$recent_posts = new WP_Query($args);
while( $recent_posts->have_posts() ) { 

   $recent_posts->the_post() ; 

   if ( has_post_thumbnail() ) {
      echo  get_the_post_thumbnail();
    }
}

wp_reset_postdata();

SO网友:Jen

为了使用the_post_thumbnail, 您需要初始化一个循环。所以更像这样:

<?php 
$args = array( \'posts_per_page\' => \'3\' );
$recent_posts = new WP_Query($args);
while( $recent_posts->have_posts() ) :  
    $recent_posts->the_post() ?>
    <li>
        <a href="<?php echo get_permalink() ?>"><?php the_title() ?></a> 
        <?php if ( has_post_thumbnail() ) : ?>
            <?php the_post_thumbnail(\'thumbnail\') ?>
        <?php endif ?>    
    </li>
<?php endwhile; ?>
<?php wp_reset_postdata(); # reset post data so that other queries/loops work ?> 
(我把缩略图放在<li> 标签,因为除此之外<li> 内部a<ol><ul> 是无效的html。)

相关推荐

如何在Functions.php中链接style.css

我是WordPress的新手;我刚开始学习WordPress。我想把风格联系起来。函数中的css。php,但我无法解决这里可能存在的问题。谁能给我指出正确的方向吗?指数php<?php get_header(); ?> <?php if ( have_posts() ) { while ( have_posts() ) { the_post();