如果一个帖子有一个缩略图,如何显示它,或者以其他方式显示帖子中的第一张图片?

时间:2012-07-02 作者:Matt

我想创建一个条件,检查帖子是否有缩略图,以及是否显示缩略图,否则显示帖子中的第一个图像。

我在循环中尝试了类似的东西。php,但它似乎不起作用:

<?php if (has_post_thumbnail()) { ?>
<a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(array(640,320)); ?></a>
<?php } else { ?>
<a href="<?php the_permalink(); ?>"><img src="<?php echo catch_that_image(); ?>" /></a>
<?php } ?>
这是我的函数。php文件:

<?php
    function catch_that_image() {
        global $post, $posts;
        $first_img = \'\';
        ob_start();
        ob_end_clean();
        $output = preg_match_all(\'/<img.+src=[\\\'"]([^\\\'"]+)[\\\'"].*>/i\', $post->post_content, $matches);
        $first_img = $matches [1] [0];

        // no image found display default image instead
        if(empty($first_img)){
             $first_img = get_bloginfo(\'template_url\')."/images/no_image.gif";
        }
            return $first_img;
    }

    $imgURL = catch_that_image();
?>

2 个回复
SO网友:its_me

Get the Image 做你需要的事,做得更好。它没有太多不必要的特性,而且做到了它所说的。试试看它是否能满足你的需要。

How does Get the Image plugin pull images?

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

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

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

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

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

SO网友:Sara

这应该可以做到,我正在使用它,它非常简单,只需将它粘贴到functions.php:

function autoset_featured() {
    global $post;
    $already_has_thumb = has_post_thumbnail($post->ID);
    if (!$already_has_thumb) {
        $attached_image = get_children( 
            "post_parent=$post->ID&post_type=attachment&post_mime_type=image&numberposts=1" 
        );
        if ($attached_image) {
            foreach ($attached_image as $attachment_id => $attachment) {
                set_post_thumbnail($post->ID, $attachment_id);// the size of the thumbnail is defined in a function above
            }
        }
    }
}  //end function

add_action(\'the_post\', \'autoset_featured\');
add_action(\'save_post\', \'autoset_featured\');
add_action(\'draft_to_publish\', \'autoset_featured\');
add_action(\'new_to_publish\', \'autoset_featured\');
add_action(\'pending_to_publish\', \'autoset_featured\');
add_action(\'future_to_publish\', \'autoset_featured\');

结束

相关推荐

Functions.php中的帖子ID错误

我试图在我的函数中执行以下代码。php更改我的wordpress博客的标题。function filter_pagetitle($url) { global $wp_query; $the_post_id = $wp_query->post->ID; $the_post_data = get_post($the_post_id); return $the_post_da