从缩略图URL获取原始图像

时间:2016-01-19 作者:Emil

我正在使用一种方法来查找包含在帖子内容中的第一幅图像,并将其显示为缩略图(有点粗糙,但效果不错)。然而,一些作者添加了小尺寸的图像,由于此函数仅查找该尺寸的URL,因此膨胀后看起来不太好。

if ($img = preg_match_all(\'/<img.+src=[\\\'"]([^\\\'"]+)[\\\'"].*>/i\', $post->post_content, $matches))
    return $img = $matches[1][0];
所以,我需要一种方法来获取原始图像的URL,或者大尺寸的URL。也许可以用RegEx完成,但最快的解决方案是什么?

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

这是一种替代执行一组RegEx的解决方案。查询所有附加到帖子的图像,获取第一个帖子的缩略图并将其显示为缩略图(如果愿意,您甚至可以将其指定为帖子缩略图,以便下次运行循环时更轻松)。因此,在您的循环中,您将拥有:

if( have_posts() ) {
    $image_mimes = array( \'image/jpeg\', \'image/gif\', \'image/png\' );

    while( have_posts() ) {
        the_post();
        $attachment_query = new WP_Query( array(
            \'post_type\'         => \'attachment\',
            \'post_parent\'       => $post->ID,
            \'post_status\'       => \'inherit\',
            \'post_mime_type\'    => $image_mimes,
            \'posts_per_page\'    => 1,
            \'fields\'            => \'ids\',               // Small and Quick query, only pull attachment IDs
        ) );

        if( has_post_thumbnail() ) {
            $thumbnail_html = get_the_post_thumbnail();
        } elseif( $attachment_query->have_posts() ) {
            $thumbnail_html = wp_get_attachment_image( $attachment_query->posts[0], \'thumbnail\' );
            wp_reset_query();
        } else {
            $thumbnail_html = \'Default Image HTML here - No Images Attached to Post\';
        }

        echo $thumbnail_html;
    }
}
现在这有一些缺点:

这不会从内容中删除图像,只允许您将其附加到顶部,包括all 附加到帖子的图像,而不仅仅是内容中的图像-因此图像可以分配给帖子,但不能直接分配到帖子内容中

相关推荐

Column Images Showing Gaps

我正在使用带有Avada主题的Wordpress。在页面顶部,我有一个fusion滑块。下面我将设置一个包含2列的容器。我为每一列插入了一幅图像。我无法解决如何消除图像左右两侧的间隙(我需要它们转到屏幕边缘)以及融合滑块与下方两幅图像之间的间隙。谢谢