scottb
  • 0
Гуру

Отображение миниатюры сообщения (вложения) в списке категорий archive.php

  • 0

Я пытаюсь настроить список категорий (archive.php), чтобы он отображал миниатюру первого изображения, прикрепленного к каждому сообщению.

Однако, по-видимому, файл archive.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 »', '1 Comment »', '% Comments »'); ?></div>
        </div>
    <?php endwhile; ?>
Share
  1. Любая причина, по которой вы не хотели бы использовать the_post_thumbnail в этом случае?

    • 0
  2. Вы можете использовать функцию WordPress get_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 »', '1 Comment »', '% Comments »'); ?></div>
        </div>
    <?php endwhile; ?>
    
    • 0

Оставить ответ

You must login to add an answer.