在Archive.php类别清单上显示帖子缩略图(附件)

时间:2010-09-08 作者:Scott B

我正在寻求自定义我的类别列表(archive.php),以便它显示附在每篇文章上的第一幅图像的缩略图

然而,显然是档案。php文件是本机不支持附件对象的文件之一。例如,下面的代码将完成我想要的大部分工作(尽管如果没有找到附件,我会得到一个空白图像,我需要修复它)。

然而,我担心在这样的循环中使用SELECT对于我正在尝试的操作来说可能太贵了。

有什么想法吗?

    <?php while (have_posts()) : the_post(); ?>
    <?php global $wpdb; $attachment_id = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_parent = \'$post->ID\' AND post_status = \'inherit\' AND post_type=\'attachment\' ORDER BY post_date DESC LIMIT 1"); ?>
        <div class="searchItem" style="clear:both;">
            <h3 id="post-<?php the_ID(); ?>"><img src="<?php echo wp_get_attachment_url($attachment_id); ?>" class="post-attachment" /><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h3>
            <small><?php the_time(\'l, F jS, Y\') ?></small>
            <div class="excerpt"><?php echo $post->post_excerpt; ?></div>
            <div class="postmetadata">Posted in <?php the_category(\', \') ?> | <?php comments_popup_link(\'No Comments &#187;\', \'1 Comment &#187;\', \'% Comments &#187;\'); ?></div>
        </div>
    <?php endwhile; ?>

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

您可以使用WordPress函数get\\u children。虽然我不认为这有什么不同,但从性能角度来看。

<?php while (have_posts()) : the_post(); ?>
    <?php $attachment = array_values( get_children( array( \'post_parent\' => $post->ID, \'post_type\' => \'attachment\', \'post_mime_type\' => \'image\', \'order\' => \'ASC\', \'numberposts\'  => 1 ) ) ); ?>
    <div class="searchItem" style="clear:both;">
        <h3 id="post-<?php the_ID(); ?>">
        <?php if( $attachment ) echo \'<img src="\' . wp_get_attachment_url($attachment[0]->ID) . \'" class="post-attachment" />\'; ?>
        <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h3>
        <small><?php the_time(\'l, F jS, Y\') ?></small>
        <div class="excerpt"><?php echo $post->post_excerpt; ?></div>
        <div class="postmetadata">Posted in <?php the_category(\', \') ?> | <?php comments_popup_link(\'No Comments &#187;\', \'1 Comment &#187;\', \'% Comments &#187;\'); ?></div>
    </div>
<?php endwhile; ?>

SO网友:bueltge

WP的核心功能是查看此内容,请参阅我的帖子http://wpengineer.com/1735/easier-better-solutions-to-get-pictures-on-your-posts/

结束

相关推荐

Adding goodies to themes

如何在主题更新时向Arjuna-X等主题添加内容而不丢失?儿童主题是一种很好的方式,还是有其他选择?如果新版本的主题对我添加的功能具有本机支持,该怎么办?