当前位置: 首页 > 知识库问答 >
问题:

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

程彭祖
2023-03-14

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

该字段的meta_查询的当前查询参数是根据该字段的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'
            ),
        )
    );
}

共有2个答案

潘宸
2023-03-14

通过打印整个查询并检查实际发生的情况,找到了此问题的原因。我们已经多次这样做,但忽略了以下细节:

这里的问题实际上不是由于复选框meta_查询,而是get_query_var术语(“课程”)与slug也是“课程”的自定义分类法之间的冲突。

执行查询时,该查询似乎是在查询与自定义分类法和所选复选框值关联的帖子,没有结果。

将名称attr重命名为课程以外的内容,然后重新配置注册的查询var,meta_query修复此问题。

袁运锋
2023-03-14

ACF将复选框值存储在数组中,这就是代码无法工作的原因。

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

 类似资料:
  • 我在修改我安装的WordPress流行帖子插件时遇到了一些问题。 它可以选择从自定义字段获取缩略图,我已将其输入为“image_facebook”。但是缩略图没有显示。 在检查代码时,我发现imgsrc有post id而不是返回图像URL。 我已经把问题缩小到我安装的另一个插件http://wordpress.org/plugins/advanced-custom-fields/ 当它处于活动状态

  • 所以我在一个以FoundationPress为主题的wordpress站点上工作,最近我将ACF升级到了Pro版本,允许repeater字段。所以我试着让客户用中继器添加新的社交媒体帐户。 http://imgur.com/ft58spd http://imgur.com/mydpawl 上面您可以看到中继器是如何在后端设置的。 header.php: 没有任何东西输出到HTML中。 如果我遗漏了

  • 我在想是否有人能帮我一下。我似乎无法让这个案例工作(因为我是PHP的一个笨蛋)。 案例:我的wordpress网站有两种“帖子类型”: 网络研讨会 Spreker(以荷兰语发言) 通过高级自定义帖子,我在网络研讨会帖子类型中设置了一个关系字段。这样我就可以选择与那篇文章相关的演讲者了。 我使用elementor并且需要使用elementor的post小部件来通过单个webinar页面模板显示相关的

  • 完整的新手到PHP,但在拼凑不坏。我已经开始使用WordPress的高级自定义字段,这非常有帮助。 我已经得到了将库字段转换为jQuery滑块的代码(你在后端插入图像,它循环并创建滑块)。然而,我希望它只加载静态图像,如果只有一个图像输入。在伪代码中: 如果字段包含多个图像,则循环使用滑块代码,否则(如果只有一个图像)只需将一个图像包装在img标记中。 当前生成滑块的实时代码: 有什么想法吗?起初

  • 我正在使用高级自定义字段为特定类别创建帖子。我使用Elementor(免费版)进行格式化,我希望使用ACF创建的所有帖子都应该显示在我的页面的特定部分下。但是,我不能这样做,因为elementor pro支持此功能,并且我不能用elementor编写php。 知道怎么做吗?

  • 我正在使用ACF插件来管理一个WooCommerce网站内的各种自定义元数据。我试图设置的功能之一是向WooCommerce结帐页面添加自定义字段。我遵循WC文档页面上概述的一般概念,它允许您通过woocommerce_after_order_notes钩子将自定义表单追加到WC结帐表单。从那里,我使用acf_form()函数输入acf表单,表单设置为false,以允许它不包含acf表单元素(即a