【问题标题】:WP_Query | meta_query argument meta value in array serialize formWP_查询 |数组序列化形式的 meta_query 参数元值
【发布时间】: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";}

这些值是动态变化的,所以我需要一些动态逻辑, 在此先感谢,请建议我如何做到这一点

【问题讨论】:

    标签: mysql wordpress function plugins


    【解决方案1】:
    $meta_query[] = array(
      'key'     => 'classes',
      'value'   => sprintf('"%s"', $user_last),
      'compare' => 'LIKE',
    );
    

    【讨论】:

    • 请在您的答案中添加一些解释,以便其他人可以从中学习
    猜你喜欢
    • 2017-10-03
    • 1970-01-01
    • 1970-01-01
    • 2020-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-07
    相关资源
    最近更新 更多