首页 > 解决方案 > 如何使用 ACF 复选框值进行 meta_query,因为它们将自己存储为数组?

问题描述

我有一个自定义帖子类型“产品”,我为“选择类别”字段创建了 4 个复选框选项,用户可以一次选择多个选项。出于某种原因,我没有使用分类法对产品进行分类。

因此,当我执行 meta_query 时,它不会产生任何结果。基本上,我已经为自定义帖子类型“产品”中的每个产品选择了类别,但是 ACF 将它的复选框值存储在数组中,并且 meta_query 无法整体搜索该数组。但是它可以从数组中搜索。我的代码如下:

 $args = array(
    'post_type'     => 'fproduct',
    'meta_query' => array(
        array(
            'key'     => 'select_product_categories',
            'value'   =>  array('Indoor Games', 'Property Management'),
            'compare' => 'IN',
        ),
    ),
);

// query
$wp_query = new WP_Query( $args );
echo "<pre>"; print_r($wp_query); echo "</pre>"; die;

那么如何搜索以便复选框可以工作,我也无法在模板上获取复选框值,因为它适用于不同产品的帖子类型。

标签: phpwordpressadvanced-custom-fields

解决方案


我已经解决了我的问题,因为复选框存储在序列化数组中,所以代替'IN','LIKE'将起作用,所以这里是查询 -

$args = array(
    'post_type'     => 'fproduct',
    'meta_query' => array(
        array(
            'key'     => 'select_product_categories',
            'value'   =>  array('"Indoor Games"', '"Property Management"'),
            'compare' => 'LIKE',
        ),
    ),
);

推荐阅读