如何获取特定宽高比的附件(图片)

时间:2016-03-25 作者:Andrej Koval

我需要获得水平方向的附件图像。我试着用Meta_Query 但我不知道如何比较两个值(widthheight) 从中的一个关联数组wp_postmeta 桌子我没有任何特定的宽度和高度值,我只需要比较关联数组中的这些值。

也尝试过这样做$wpdb 自定义查询:

$attach_ids = $wpdb->query( "
SELECT wp_posts.ID FROM wp_posts, wp_postmeta 
WHERE EXISTS (SELECT * FROM wp_postmeta 
    WHERE meta_key = \'_wp_attachment_metadata\' 
    AND meta_value= ???)
AND wp_posts.ID = wp_postmeta.post_id 
AND wp_posts.post_type = \'attachment\' 
AND wp_posts.post_mime_type = \'image/jpeg\'
ORDER BY RAND() LIMIT 0, 6" );
有人能理解我的问题并帮我吗?P、 对不起,我的英语不好。

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

这个_wp_attachment_metadata 存储序列化数据。它不打算直接用于查询以匹配结果。而是挂钩add_attachment 操作并将原始图像的维度存储到单独的post meta属性中。在你对它的工作方式感到满意之后,遵循Rarst的建议,找到一种方法来遍历所有现有的图像附件,并为它们生成这些元数据。

SO网友:Rarst

不幸的是,附件数据存储为单个数组条目,并作为序列化的PHP字符串插入到数据库中。这是一种非常不方便用SQL查询的方法。

由于您似乎希望重复运行随机结果,我认为最好的方法是使用代码遍历附件,并创建新的自定义元,从中保存各个宽度和高度值。之后,在上传的新图像上也可以这样做,查询起来会更加友好。