我有一个自定义的分类法“length”,有3个值[\'long\'、\'medium\'、\'short\'],我已经将这个分类法附加到了附件(使用CPT UI)
在查看分类法时,我可以看到我已成功地将“long”添加到图像中,因为它显示“count=1”
但是,我的查询没有返回任何记录。
Array
(
    [post_type] => attachment
    [post_mime_type] => image
    [post_status] => inherit
    [posts_per_page] => -1
    [meta_query] => Array
    (
        [0] => Array
            (
                [key] => length
                [value] => Array
                    (
                        [0] => 26
                    )
                [compare] => IN
            )
    )
)
 如果我删除meta\\u查询,它会返回所有图像。我已经确认“long”分类记录的ID是26。我可以在wp\\U Posteta中看到,存在正确记录的值。
请求查询为:
SELECT   wp_posts.* FROM wp_posts  INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id ) WHERE 1=1  AND (wp_posts.post_mime_type LIKE \'image/%\')  AND ( 
( wp_postmeta.meta_key = \'length\' AND CAST(wp_postmeta.meta_value AS CHAR) IN (\'26\') )
) AND wp_posts.post_type = \'attachment\' AND ((wp_posts.post_status = \'inherit\')) GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC 
 我可以看出,问题是meta\\u值存储为序列化对象,并且:
 wp_postmeta.meta_key = \'length\' AND CAST(wp_postmeta.meta_value AS CHAR) IN (\'26\')
 永远不会是真的。我可以编写一个自定义sql查询来解决这个问题,但是,我想知道元查询是否缺少一些东西?