显示帖子缩略图而不显示特色图像

时间:2012-07-05 作者:Anthony Myers

我希望我能解释一下我在这里的目的。在我当前项目的主页上,我将显示每篇文章的特色图片拇指,以及文章内容的摘录。在每个实际的贴子页面中,都有一个默认的WP库,其中包含2到4个图像。

我想做的是,让我的客户不必在每篇文章中都使用特色图片,这样缩略图就会始终显示在主页上。换言之,现在,他必须选择一幅图片作为特色,以便在主页上的每个循环中都有代表性的缩略图。

我可以这样做吗?即使他没有为帖子选择一个特色图片,仍然有一个缩略图来代表帖子?如果没有选择特色图片,我可以让它自动拾取帖子库中的第一张图片吗?

以防万一,以下是我正在使用的一些代码:

              <div id="image-wrap">
             <?php 
              if ( has_post_thumbnail() ) {
              the_post_thumbnail();
               } 
              ?>




         </div><!--end image-wrap-->


                <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
                 <?php the_title(\'<h2 class="entry-title"><a href="\' .  

get_permalink() . \'" title="\' . the_title_attribute(\'echo=0\') . \'" 
rel="bookmark">\', \'</a></h2>\'); ?>

                 <div class="entry-content">
<?php the_content(__(\'Continue reading\', \'example\')); ?>
<?php wp_link_pages(\'before=<p class="pages">\' . __(\'Pages:\',\'example\') .

\'&after=</p>\'); ?>
</div>





</div>

<?php endwhile; ?>

<?php else : ?>

<p class="no-posts"><?php _e(\'Sorry, no posts matched your criteria\',  
\'example\'); ?></p>

<?php endif; ?>
<?php wp_reset_query(); ?> 
然后这是我的函数文件:

 // This theme uses post thumbnails
add_theme_support( \'post-thumbnails\' );
set_post_thumbnail_size( 150, 100, true );




// Automatically makes featured image thumbs a clickable link
add_filter( \'post_thumbnail_html\', \'my_post_image_html\', 10, 3 );

function my_post_image_html( $html, $post_id, $post_image_id ) {

$html = \'<a href="\' . get_permalink( $post_id ) . \'" title="\' . esc_attr(   
get_post_field( \'post_title\', $post_id ) ) . \'">\' . $html . \'</a>\';
return $html;

}

// This theme displays full size featured image on the Post\'s page
function InsertFeaturedImage($content) {

global $post;

$original_content = $content;

if ( current_theme_supports( \'post-thumbnails\' ) ) {

    if ((is_page()) || (is_single())) {
        $content = the_post_thumbnail(\'page-single\');
        $content .= $original_content;

    }

}
return $content;
}

add_filter( \'the_content\', \'InsertFeaturedImage\' ); 
http://dependablecarcompany.com 如果你想知道我在说什么的话,那就是地址。当你看到标题为“1991 GMC Sierra”的帖子时,你就会明白我的意思。我没有为帖子使用特色图片,因此没有显示缩略图。提前感谢!

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

无法推荐Get the Image 插件(JustinTadlock)足够了。它是目前最好的软件之一,维护良好,代码简洁,更重要的是,它可以满足您的需要,同时为您提供了大量的选择。

How does it pull images?

    按自定义字段(您选择的一个字段)查找图像。

    如果自定义字段未添加图像,请使用\\u post\\u缩略图()检查图像(WP 2.9的新图像功能)。

    如果找不到图像,它会抓取附在帖子上的图像。

    如果没有附加图像,它可以从您的帖子内容中提取图像(默认情况下关闭)。

    如果此时未找到图像,它将默认为您设置的图像(默认情况下未设置)。

SO网友:Otto

只需检查缩略图,如果未设置缩略图,请使用库中的第一幅图像。类似这样:

$size = \'thumbnail\'; // whatever size you want
if ( has_post_thumbnail() ) {
    the_post_thumbnail( $size );
} else {
    $attachments = get_children( array(
        \'post_parent\' => get_the_ID(),
        \'post_status\' => \'inherit\',
        \'post_type\' => \'attachment\',
        \'post_mime_type\' => \'image\',
        \'order\' => \'ASC\',
        \'orderby\' => \'menu_order ID\',
        \'numberposts\' => 1)
    );
    foreach ( $attachments as $thumb_id => $attachment ) {
        echo wp_get_attachment_image($thumb_id, $size);
    }
}
基本上,如果不存在特征图像,那么has\\u post\\u thumbnail()将返回false。因此,您可以调用get\\u children来获取此帖子的附加图像。注意numberposts=1,所以它只得到第一个。然后使用wp\\u get\\u attachment\\u image输出该图像。

请注意,我使用了foreach,尽管我在这里只得到了一张图像。这是因为get\\u children返回一个帖子数组,而不管它返回多少帖子。所以我在一个大小为1的数组中“循环”。如果没有图像,数组将为空,因此不会输出任何内容。

如果您不喜欢使用get\\u子级,那么可以构造一个类似的新WP\\u查询,以类似的方式获取第一个附件图像。

将缺少的大括号添加到foreach循环中

结束

相关推荐