高级自定义字段复选框查询不起作用



我正在使用高级自定义字段为帖子分配自定义字段。然后,过滤系统使用此字段通过自定义查询(通过pre_get_posts操作(过滤帖子。其他查询参数工作正常,除了依赖于 ACF 字段

的参数。

字段meta_query的当前查询参数是根据字段的 ACF 文档构造的(因此值周围带有引号(。

谁能告诉我这是哪里出了问题?查询似乎没有根据我传递给查询的值返回任何帖子。

查询参数:

$courses = get_query_var('courses');
if ($courses) {
    $query->set('meta_query', array(
            array(
                'key' => 'course_check',
                'value' => '"'.$courses.'"', //i.e mdia-403
                'compare' => 'LIKE'
            ),
        )
    );
}

ACF 将复选框值存储在数组中,这就是您的代码不起作用的原因。

请参阅此处的工作示例:https://support.advancedcustomfields.com/forums/topic/wp_query-using-meta_query-for-an-acf-checkbox-field/

通过print_r整个查询并检查实际发生的情况来找到此问题的原因 - 多次执行此操作,但忽略了以下细节:

这里的问题实际上不是由于复选框meta_query,而是get_query_var术语("课程"(与自定义分类法之间的冲突,其 sla 也是"课程"。

执行查询时,查询

似乎正在查询与自定义分类和所选复选框值关联的帖子,但未产生任何结果。

将名称

attr 重命名为课程以外的名称,然后重新配置已注册的查询 var 并meta_query解决此问题。

最新更新