搜索宽度和高度超过500的图像

时间:2017-07-28 作者:Youro

这是我获取第一张图像的代码:

function get_post_first_image() {
global $post, $posts;
$first_img  = \'\';
ob_start();
ob_end_clean();
$content    = get_the_content();
$content    = apply_filters( \'the_content\', $content );
$output     = preg_match_all(\'/<img.+src=[\\\'"]([^\\\'"]+)[\\\'"].*>/i\', $content, $matches); // You must replace data-original to str if you disabled lazy-load images
$first_img  = $matches[1][0];
if(empty($first_img)){ 
    $first_img = "";
}
return $first_img;
}
如何将此代码转换为在帖子内容上搜索任何宽度和高度超过500px的图像?注意:搜索所有内容,而不是仅搜索第一篇文章。getimagesize对此有帮助吗?

1 个回复
SO网友:WPExplorer

您可以通过getimagesize()函数运行$matches来检查其维度,问题是此函数需要图像的路径,但您的内容将提供完整的URL,因此您需要查看图像是否也保存在媒体库中,如果是,请仅获取相对路径。如果许多图像来自第三方网站,则会更加复杂,因为您需要获取图像,或者需要使用javascript。

如果您的图像托管在自己的网站上,则示例如下:

$images = array();

foreach ( $matches[1] as $match ) {

    $attachment_id = attachment_url_to_postid( $match );

    if ( $attachment_id ) {

        $path = get_attached_file( $attachment_id );

        list( $width, $height ) = getimagesize( $path );

        if ( $width > 500 && $height > 500 ) {

            $images[$match];

        }

    }

}

var_dump( $images );

结束

相关推荐

为什么在通过AJAX加载页面时使用admin-ajax.php?

我用过this tutorial 在我的网站上实现ajax页面转换。在查看了一些问题后,我发现在大多数论坛帖子上,人们都建议“使用”admin-ajax.php. 我对此进行了调查,但恐怕我真的不明白它是如何工作的。这是我的电流page-transition.js, 这已经开始很好地发挥作用了。如果我使用admin-ajax.php, 它真的是“强制性的”吗?jQuery(document).ready(function (event) { // get rooturl via