是否可以拉出并显示单个面向风景的图像

时间:2013-04-16 作者:gurung

我想知道这是否可行。为此,我在互联网上浏览了很多帖子,但似乎没有一个好的解决方案。我运行一个基于wordpress的商业网站,现在有一个特殊的要求,我需要一个黑客/代码来提取和显示一个图像(从上传/附加到该帖子的其他图像中)。

现在棘手的部分是,图像必须是水平/横向的图像。如果找不到风景图片,它可能什么也不返回。请让我知道,如果需要更多的澄清。

如果你一定要知道的话,我已经有了一张特色图片。

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

检索面向“横向”图像的函数

function wpse_96012_landscape_image() {

    /* global post object holding info about the current post */
    global $post;

    /* grab all images attached to the current post */
    $attached_images = get_children( array(
        \'post_parent\' => $post->ID,
        \'post_type\' => \'attachment\',
        \'post_mime_type\' => \'image\'
    ) );

    /* set minimum ratio between width / height, change to your liking */
    $minimum_aspect_ratio = 1.2;

    /*
     * iterate over attachments
     * get size, compare width & height
     * stop execution if an image with "landscape" dimensions is found
     */
    foreach( $attached_images as $image ) {
        $url = wp_get_attachment_url( $image->ID );
        $size = getimagesize( $url );
        if ( $size[0] >= ( $size[1] * $minimum_aspect_ratio ) ) {
            return $url;
        }
    }

    return false;
}
上述函数将返回第一幅图像的URL,其纵横比大于或等于设置的最小值或false 如果没有找到。

因此,如果您想在有图像的情况下输出图像,您可以这样做:

$landscape_image_url = wpse_96012_landscape_image();
if ( $landscape_image_url ) {
    echo \'<img alt="landscape image" src="\' . $landscape_image_url . \'" />\';
}
参考文献get_children (可湿性粉剂)getimagesize (PHP)

结束

相关推荐

How to get gallery images?

我在wordpress的帖子中上传了一些图片(例如,帖子#1和帖子#2)。现在我创建了一个新帖子(例如,帖子#3),在这篇帖子中我插入了WordPress 3.5图库,我没有在帖子#3中上传任何图像,而是使用了帖子#1和帖子#2中的图像。现在在帖子#3中,我想获得这些图片的链接,但我似乎无法获得。我正在使用以下代码:$attachments = get_children( array(\'post_parent\' => get_the_ID(), \'post_type\' => \'att