高级自定义字段复选框查询不起作用
Advanced Custom Field checkbox query not working
我正在使用高级自定义字段为帖子分配自定义字段。
然后过滤系统使用此字段来使用自定义查询过滤帖子(通过 pre_get_posts 操作)。其他查询参数工作正常,除了依赖 ACF 字段的那个。
字段的 meta_query 的当前查询参数是根据字段的 ACF documentation 构造的(因此在值两边加上引号) .
谁能告诉我哪里出了问题?该查询似乎 return 没有任何基于我传递给查询的值的帖子。
查询参数:
$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 将复选框值存储在数组中,这就是您的代码无法正常工作的原因。
通过 print_r 查询整个查询并检查实际发生的情况找到了此问题的原因 - 这样做了很多次,但忽略了以下细节:
这里的问题实际上不是由于复选框 meta_query 引起的,而是 get_query_var 术语(“课程”)和一个自定义分类法之间的冲突,其 slug 也是“课程”。
执行查询时,查询似乎是在查询与自定义分类法和所选复选框值相关的帖子,但未产生任何结果。
将名称 attr 重命名为课程以外的名称,然后重新配置注册的查询变量,meta_query 解决了这个问题。
我正在使用高级自定义字段为帖子分配自定义字段。 然后过滤系统使用此字段来使用自定义查询过滤帖子(通过 pre_get_posts 操作)。其他查询参数工作正常,除了依赖 ACF 字段的那个。
字段的 meta_query 的当前查询参数是根据字段的 ACF documentation 构造的(因此在值两边加上引号) .
谁能告诉我哪里出了问题?该查询似乎 return 没有任何基于我传递给查询的值的帖子。
查询参数:
$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 将复选框值存储在数组中,这就是您的代码无法正常工作的原因。
通过 print_r 查询整个查询并检查实际发生的情况找到了此问题的原因 - 这样做了很多次,但忽略了以下细节:
这里的问题实际上不是由于复选框 meta_query 引起的,而是 get_query_var 术语(“课程”)和一个自定义分类法之间的冲突,其 slug 也是“课程”。
执行查询时,查询似乎是在查询与自定义分类法和所选复选框值相关的帖子,但未产生任何结果。
将名称 attr 重命名为课程以外的名称,然后重新配置注册的查询变量,meta_query 解决了这个问题。