自定义帖子类型模板中的元素或自定义筛选器查询-如何查询要筛选的字段值



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

所有产品都被分配到供应商特定的类别。因此,供应商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 );
} );

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/

最新更新