如何在WordPress的meta_query中获取嵌套键reviewer_id的值并对比?
WordPress Meta Query 匹配嵌套数组字段的正确写法
你原来的写法无法生效,因为WordPress会把数组类型的自定义字段存储为序列化字符串,比如reviewer_for_post字段实际存储的内容类似a:1:{s:10:"reviewer_id";i:123;},直接用reviewer_for_post[reviewer_id]作为查询key找不到对应的记录。
正确的查询写法如下:
'meta_query' => array( array( 'key' => 'reviewer_for_post', 'value' => serialize( array( 'reviewer_id' => $user_editor->ID ) ), 'compare' => 'LIKE' ) )
补充说明
serialize(array('reviewer_id' => $user_editor->ID))会生成和WordPress存储格式一致的序列化片段,用LIKE就能精准匹配到包含该片段的meta记录。- 即便
reviewer_for_post数组包含其他键值对,这个方法依然有效,因为序列化后的结构会保留每个键值对的独立标识,不会出现误匹配。
内容的提问来源于stack exchange,提问作者syedashar321
相关产品推荐
相关产品推荐

