it-swarm-vi.com

Hiển thị hình thu nhỏ bài đăng (tệp đính kèm) trên danh sách danh mục archive.php

Tôi đang tìm cách tùy chỉnh danh sách danh mục của mình (archive.php) để nó hiển thị hình ảnh thu nhỏ của hình ảnh đầu tiên được đính kèm vào mỗi bài đăng

Tuy nhiên, rõ ràng tệp archive.php là một trong những tệp không hỗ trợ đối tượng đính kèm. Ví dụ, mã dưới đây sẽ thực hiện hầu hết những gì tôi muốn (mặc dù nếu không tìm thấy tệp đính kèm, tôi nhận được một hình ảnh trống, tôi cần phải sửa nó).

Tuy nhiên, tôi sợ có một CHỌN trong một vòng lặp như thế này có lẽ quá tốn kém cho những gì tôi đang cố gắng thực hiện.

Có ý kiến ​​gì không?

    <?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; ?>
1
Scott B

Bạn có thể sử dụng chức năng WordPress get_children. Mặc dù tôi không nghĩ rằng nó làm cho một sự khác biệt, hiệu suất khôn ngoan.

<?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; ?>
2
sorich87

WP có chức năng cốt lõi để xem cái này, xem bài đăng của tôi http://wpengineer.com/1735/easier-better-solutions-to-get-pictures-on-your-posts/

0
bueltge