【问题标题】:Elementor custom filter query in custom post type template - How to query field value to filter by?自定义帖子类型模板中的 Elementor 自定义过滤器查询 - 如何查询要过滤的字段值?
【发布时间】:2021-07-17 12:01:31
【问题描述】:

我有一个自定义帖子类型,它是供应商的一种个人资料页面。在每一页的末尾,我都有一个产品小部件,它应该显示该供应商的产品。

所有产品都分配到特定于供应商的类别。所以供应商 A 的资料页应该显示分配给 product_cat A 的所有产品。

相应的 product_cat 由每个配置文件页面上的 acf 字段指定。 所以我的自定义过滤查询需要获取指定的product_cat,然后按该类别过滤所有产品。 我正在努力解决如何从帖子中获取自定义字段值到我的过滤器查询中。 这是我目前所拥有的:

add_action( 'elementor/query/my-custom-query', function( $query ) {
    $filtre = get_field( "supplier_cat" );
    $query-> set('product_cat' , $filtre );

} );

【问题讨论】:

  • 1.您使用哪个产品小部件? 2. "anzuzeigende_produktkategorie" 中存储了什么?
  • 为清楚起见进行了编辑 - “anzuzeigende_produktkategorie” (supplier_cat) 是包含要过滤的 product_cat 类型值的字段。这是我需要查询的自定义帖子类型的 acf 字段。我正在使用自定义循环模板 - 但任何存档/产品小部件都将支持自定义过滤器查询。
  • 为什么不在产品帖子中为供应商使用自定义字段?并在供应商详细信息页面过滤它们?您能告诉我您是如何使用 my-custom-query 过滤器获得产品循环的吗?默认WC不支持。
  • 因为它是一个模板文件,我需要过滤查询是动态的。我使用的小部件是应用了自定义皮肤的帖子小部件。
  • 那么,您希望将供应商链接到特定的 product_cat 而不是将产品链接到供应商? supplier_cat 是单个类别还是数组?请提供一些例子。

标签: wordpress woocommerce elementor acfpro


【解决方案1】:

get_field 函数可能无法正常工作,好像 ACF 在 Elementor 中以某种方式导致了无限循环。这就是为什么你必须使用get_post_meta

这是一个建议。在假设中,您将“产品”和“供应商”作为自定义帖子类型,“产品”作为自定义分类(类别)“供应商”。 “供应商”有一个带有supplier_cat 的高级自定义字段。 要向供应商显示所有相关产品,您可以在 Elementor 的帖子小部件的查询部分中选择:

Source: Product
Query ID: my-custom-query

在您主题的function.php 文件中使用此代码:

add_action( 'elementor/query/my-custom-query', function( $query ) {

    $postid = get_the_ID();
    $supplier_cat = get_post_meta( $postid, 'supplier_cat', true );
    $tax_query = array(
        array(
            'taxonomy' => 'supplier_cat',
            'field' => 'slug',
            'terms' => $supplier_cat,
        )
    );
    $query->set( 'tax_query', $tax_query );

} );

此动作挂钩的参考:
https://developers.elementor.com/custom-query-filter/

【讨论】:

    猜你喜欢
    • 2021-12-31
    • 2021-01-03
    • 1970-01-01
    • 1970-01-01
    • 2020-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-05
    相关资源
    最近更新 更多