我正在尝试使用元查询获取post-meta,其中value是一个键值对数组。
$user_id = \'123\';
$arr = array();
$arr[\'a\'] => "somevalaaa" ;
$arr[\'user_id\'] => $user_id ;
$arr[\'c\'] => "somevalyyy" ;
添加post meta
add_post_meta($review_post_id, \'key_of_post_meta\', $arr );
使用元查询获取post meta(用户id与$user\\u id相同),我错在哪里?
$args = array(
\'post_type\' => \'as_reviews\',
\'posts_per_page\' => -1,
\'post_status\' => \'publish\',
\'meta_query\' => array(
array(
\'key\' => \'key_of_post_meta\',
\'value\' => array(\'user_id\'=>$user_id),
\'compare\' => \'IN\',
),
),
);
$query = new WP_Query($args);
最合适的回答,由SO网友:Aurovrata 整理而成
这个meta_query 无法用于搜索存储为序列化数组的值。您可以使用它来搜索多个值(元字段可以several values using the same key).
你需要一种不同的方法来解决你的问题,这就是我的建议,
将元字段和用户id存储为密钥名称的一部分,
add_post_meta($review_post_id, \'key_of_post_meta_\'.$user_id, $arr );
接下来,检索您的帖子,
$args = array(
\'post_type\' => \'as_reviews\',
\'posts_per_page\' => -1,
\'post_status\' => \'publish\',
\'meta_key\' => \'key_of_post_meta_\'.$user_id
);
$query = new WP_Query($args);