子字段值ACF的元查询帖子

时间:2016-07-11 17:07:48

标签: wordpress advanced-custom-fields

我正在尝试查询子字段值为' audi'的帖子。我看了看,但找不到答案。我所拥有的$ args位于下方,并且数据库中存在与“audi”相匹配的帖子。作为子字段'模型的价值'转发器'汽车'。

$args = array(
    'post_type' => 'manufacturers',
    'meta_query' => array(
       array(
        'key' => 'cars_%_model',
        'value' => 'audi',
        'compare' => 'LIKE'
       )
    )
);
$query = new WP_Query($args);

有关此代码落在何处的任何提示都将非常感激。

1 个答案:

答案 0 :(得分:2)

我在这上花了几个小时为你找到了解决方案:

您需要做的第一件事是设置一个替换' ='比较' LIKE'比较(包括上面的代码):

function my_posts_where( $where ) {
     $where = str_replace("meta_key = 'cars_", "meta_key LIKE 'cars_", $where);
     // note if using wordpress < v4.8.3 add a % to the meta key like this: meta_key = 'cars_%",...
     return $where;
}

add_filter('posts_where', 'my_posts_where');

现在您需要做的就是将meta_query比较更新为&#39; =&#39;:

$args = array(
    'post_type' => 'manufacturers',
    'meta_query' => array(
       array(
        'key' => 'cars_%_model',
        'value' => 'audi',
        'compare' => '='
       )
    )
);
$query = new WP_Query($args);

这包含在ACF documentation中,但文档未提及Wordpress 4.8.3 which is mentioned here之后的更新。