自定义循环,分类与页面匹配:如何显示贴子特色图像?

时间:2013-04-06 作者:Daniel

我发现this answer. 这节省了我的时间,但你能告诉我如何用下面的代码显示帖子的特色图片吗?

当我使用

<?php echo $cpost->post_thumbnail(\'thumbnail\', array(\'class\' => \'alignleft\')); ?>
图像未显示。。。

代码如下:

<?php if(is_page()) : // check we are a page ?>
    <?php global $post; $cposts = get_posts("numberposts=-1&category_name={$post->post_name}"); if($cposts) : ?>

            <?php foreach($cposts as $cpost) : ?>
             <div class="mb20"> 
                <h2><?php echo $cpost->post_title; ?></h2>
                <p><?php echo $cpost->post_content; ?></p>

                <?php echo $cpost->post_thumbnail(\'thumbnail\', array(\'class\' => \'alignleft\')); ?>

            </div>  
            <?php endforeach; ?>


                <?php endif; ?>
        <?php endif; ?>
你能告诉我正确的代码应该如何工作吗?

1 个回复
最合适的回答,由SO网友:Johannes Pille 整理而成

get_posts 获取的数组WP_Post 对象(请参见return values of get_post 获取对象属性的完整列表)。

在上面的代码片段中,您使用foreach 环在它内部,您当前正在尝试使用一个不存在的方法(post_thumbnail() ) 在这些对象中。

相反,请使用get_the_post_thumbnail 函数,并将当前post对象的ID属性作为第一个参数提供给它:

<?php
    echo get_the_post_thumbnail( $cpost->ID, \'thumbnail\', array( \'class\' => \'alignleft\' ) );
?>
这回答了你问题的核心
顺便说一句,我要指出,您不需要<?php 每行上的打开和关闭标记。下面是对您的代码片段的完整修订:

<?php
    if ( is_page() ) {

        global $post;

        $cposts = get_posts( array(
            \'posts_per_page\' => -1,
            \'category_name\' => $post->post_name
        ));

        if ( $cposts ) {
            foreach ( $cposts as $cpost ) {

                echo \'<div class="mb20">\' .
                        \'<h2>\' . $cpost->post_title . \'</h2>\' .
                        \'<p>\' . $cpost->post_content . \'</p>\' .
                        get_the_post_thumbnail(
                            $cpost->ID,
                            \'thumbnail\',
                            array( \'class\' => \'alignleft\' )
                        ) .
                    \'</div>\';
            }
        }
    }
?>

结束

相关推荐

How to get gallery images?

我在wordpress的帖子中上传了一些图片(例如,帖子#1和帖子#2)。现在我创建了一个新帖子(例如,帖子#3),在这篇帖子中我插入了WordPress 3.5图库,我没有在帖子#3中上传任何图像,而是使用了帖子#1和帖子#2中的图像。现在在帖子#3中,我想获得这些图片的链接,但我似乎无法获得。我正在使用以下代码:$attachments = get_children( array(\'post_parent\' => get_the_ID(), \'post_type\' => \'att