没有使用其他帖子的特色图片的帖子

时间:2013-12-16 作者:Steven_Harris_

我正在使用以下代码(见下图)显示一个名为“艺术家”的自定义帖子。我也在使用<?php if (has_post_thumbnail( $post->ID ) ) 因此,我可以使用post缩略图设置div的背景(我认为这不是问题)。

我想在一个页面上显示所有帖子,所以请使用\'numberposts\' => -1,. 我注意到,前十二篇帖子之后的帖子使用了另一篇帖子的特色图片,如果他们没有指定图片的话。

如果我为任何有问题的帖子指定了一个特色图片,那么它确实会显示正确的图片。我只是不明白为什么前十二篇文章之后的每一篇文章都在使用另一篇文章的特色图片。我使用的环路有问题吗\'numberposts\' => -1,? 这没有什么害处,因为我将为每个人分配一个图像,但我想了解为什么会发生这种情况。

enter image description here

   <?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();?>

1 个回复
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] 在代码中。

结束

相关推荐

如何在unctions.php中的函数内部调用BloInfo?

我是WordPress和PHP新手,所以我有一个问题:我想为我实现的自定义帖子类型添加到“新帖子”的链接。但它只允许我放置静态链接,连接到本地主机测试安装。如何在此处添加非静态URL,如bloginfo(\'wpurl\') 它真的会读出吗?这就是我想要的: function wp_admin_bar_new_item(){ global $wp_admin_bar; $wp_admin_bar->add_menu(array(