我正在使用以下代码(见下图)显示一个名为“艺术家”的自定义帖子。我也在使用<?php if (has_post_thumbnail( $post->ID ) )
因此,我可以使用post缩略图设置div的背景(我认为这不是问题)。
我想在一个页面上显示所有帖子,所以请使用\'numberposts\' => -1,
. 我注意到,前十二篇帖子之后的帖子使用了另一篇帖子的特色图片,如果他们没有指定图片的话。
如果我为任何有问题的帖子指定了一个特色图片,那么它确实会显示正确的图片。我只是不明白为什么前十二篇文章之后的每一篇文章都在使用另一篇文章的特色图片。我使用的环路有问题吗\'numberposts\' => -1,
? 这没有什么害处,因为我将为每个人分配一个图像,但我想了解为什么会发生这种情况。
<?php
$args = array(
\'post_type\' => \'artists\',
\'numberposts\' => -1,
\'orderby\' => \'title\',
\'order\' => \'ASC\'
);
$myposts = get_posts( $args );
foreach ( $myposts as $post ) : setup_postdata( $post ); ?>
<?php if (has_post_thumbnail( $post->ID ) ): ?>
<?php $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), \'single-post-thumbnail\' ); ?>
<?php endif; ?>
<li class="artist-list artist-mobile">
<a href="<?php esc_url( the_permalink() ); ?>">
<div class="artist-box mobile" style="background-image: url(\'<?php echo $image[0]; ?>\')">
<div class="mobile-link"></div>
<div class="info-back">
<div class="info-post"><p>VIEW ARTIST</p></div>
<div class="cross">+</div>
</div>
</div>
<div class="artist-name"><?php the_title();?></div>
</a></li>
<?php endforeach;
wp_reset_postdata();?>
SO网友:birgire
如果我为任何有问题的帖子指定了一个特色图片,那么它确实会显示正确的图片。我只是不明白为什么前十二篇文章之后的每一篇文章都在使用另一篇文章的特色图片。
我想问题是你没有重置$image
如果当前帖子没有特色缩略图。
您应该添加例如:
<?php
if (has_post_thumbnail( $post->ID ) ):
$image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), \'single-post-thumbnail\' ); ?>
else:
$image = array( \'http://example.com/default.jpg\' );
endif;
?>
因为您正在使用
$image[0]
在代码中。