WP_查询 |数组序列化形式的 meta_query 参数元值
Posted
技术标签:
【中文标题】WP_查询 |数组序列化形式的 meta_query 参数元值【英文标题】:WP_Query | meta_query argument meta value in array serialize form 【发布时间】:2021-04-02 17:37:45 【问题描述】:简而言之,我想从 usermeta 表中获取元值,但元值是序列化数组形式, 这些值实际上是 post id,这是我的单个元值的工作代码,我想要 meta_value 中的序列化数组中的多个值
$user_id = get_current_user_id();
$key = 'classes';
$single = true;
$user_last = get_user_meta( $user_id, $key, $single );
$user_last;
$query_args = array(
'posts_per_page' => $output,
'post_status' => 'publish',
'post_type' => 'stm-courses',
'meta_query' => array(
array(
'key' => 'classes',
'value' => $user_last,
'compare' => 'LIKE'
)
)
);
print_r( $query_args ); echo "string";
单个元值工作正常,但不是多个值
下面是上述查询的输出
Array ( [posts_per_page] => 3 [post_status] => publish [post_type] => stm-courses [meta_query] => Array ( [0] => Array ( [key] => classes [value] => Array ( [0] => 5033 [1] => 5034 ) [compare] => LIKE ) ) ) string
在数据库中,meta_key 类的值是这样存储的
a:2:i:0;s:4:"5033";i:1;s:4:"5034";
这些值是动态变化的,所以我需要一些动态逻辑, 在此先感谢,请建议我如何做到这一点
【问题讨论】:
【参考方案1】:$meta_query[] = array(
'key' => 'classes',
'value' => sprintf('"%s"', $user_last),
'compare' => 'LIKE',
);
【讨论】:
请在您的答案中添加一些解释,以便其他人可以从中学习以上是关于WP_查询 |数组序列化形式的 meta_query 参数元值的主要内容,如果未能解决你的问题,请参考以下文章
BZOJ_3110_[Zjoi2013]K大数查询_整体二分+树状数组