我有一个自定义后类型设置称为艺术家。每个单个艺术家是一个页面(艺术家个人资料,如果你愿意),有一个通过高级自定义字段(ACF)的关系字段类型与该艺术家相关联的产品列表。我需要产品在艺术家页面上显示在他们的类别中。因此,在Elementor中,我需要指定一个查询筛选器ID,以简单地将产品划分为类别。
到目前为止我所尝试的
我试图通过自定义查询仅显示列表中特定类别的产品,因为我需要生成查询ID。
我一直在尝试各种不同的方法来做到这一点,但现在我不知所措。我的最新代码在这里。。。我错过了什么?
/** Product category 'SOFTWARE' **/
add_filter( 'software_product', 'product_category_software' );
function product_category_software( $variable ) {
$query_args = array(
'post_type' => 'product',
'tax_query' => array(
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => 'software',
),
),
);
return $variable;
}
你需要用这个
https://developers.elementor.com/custom-query-filter/#Using_the_Custom_Filter
任意\u名称\u查询\u id
-您在Elementor字段中填写的查询id,
要放在functions.php
中的代码:
add_action( 'elementor/query/arbitrary_name_query_id', function( $query ) {
$meta_query = $query->get( 'meta_query' );
$meta_query[] = [
'key' => 'acf_key', // put ACF relationship field name
'value' => get_the_ID(),
'compare' => '=',
];
$query->set( 'meta_query', $meta_query );
} );
首先,作为WordPress文档过滤器说:
它们(即过滤器)为函数提供了修改其他函数数据的方法。
这意味着过滤器功能,在本例中是产品类别软件
,接收随后修改并返回的数据:
add_filter( 'software_product', 'product_category_software' );
function product_category_software( $variable ) { // receive $variable
/**
* Modify $variable here
*/
return $variable; // return modified $variable
}
在您的情况下product_category_software
不会修改接收的内容,而是引入了新的数据和平$query_args
,这没有意义,因为它不会被返回。
其次,add\u filter
函数的第一个参数应该是一个现有的过滤器名称,software\u product
不是。
再次,产品类别分类法的正确名称是product_cat
。
Aproach#1使用pre#u get_posts修改主查询
function your_arbitrary_name( $query ) { // receive
if ( ! is_admin() && is_post_type_archive( 'product' ) && $query->is_main_query() ) {
$tax_query = array(
array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => array('software'),
)
);
$query->set( 'meta_query', $tax_query ); // modify
}
return $query; // and return
}
add_action( 'pre_get_posts', 'your_arbitrary_name', 20 );
使用wc_get_products
或WC_Product_Query
例如,在控制器甚至模板中使用:
$args = array(
'category' => array( 'software' ),
);
$products = wc_get_products( $args );
阅读有关wc_获取_产品和wc_产品查询的文档
我正在使用高级自定义字段插件,我试图通过分类字段过滤一些自定义帖子,修改WP_Query: 如果我尝试通过文本字段过滤一切正常,WP_Query被修改。但是当字段是一个分类法字段时,我不知道应该传递什么参数,因为它是一个对象。我尝试了分类法名称和分类法ID,但不起作用。 是否可以通过分类字段进行筛选?我应该传递的什么参数?谢谢! 更新-结构: 自定义帖子:“递归操作系统” 自定义分类Slug:'r
我有一个前端ACF表单-ACF_表单()。使用post对象字段。我想通过自定义字段限制查询结果。下面的代码可以正常工作,除了当我尝试在搜索栏中键入时,会出现以下错误:我得到的错误是ajax响应中的PHP错误; 0:“PhpConsole\Handler”- 1:"strpos()" 2:"acf_order_by_search()" 3:“acf_field_post_object- 4:“acf
我有一个自定义的职位类型,这是一个供应商的个人资料页排序。在每一页的末尾,我都有一个产品小部件,它应该显示这个供应商的产品。 所有产品都被分配到供应商特定的类别。因此供应商A的个人资料页面应显示分配给product_catA的所有产品。 相应的产品类别由每个配置文件页面上的acf字段指定。因此,我的自定义筛选查询需要获取指定的产品目录,然后按该类别筛选所有产品。我正在努力研究如何将帖子中的自定义字
我知道你可以设置自定义查询与元素插件,但只有少数小部件支持这个f. e.后小部件。但是我想设置一个自定义查询与"Archive Post"-元素的小部件。 我想把我所有的帖子按年份分组。(每一行的顶部还应显示年度名称) 你知道怎么做吗?也许通过改变php代码本身?Elementor的php代码在哪里?
我使用ACF,有一个名为“关于”的页面模板,我的“关于我们”页面使用该模板。我还有一个主页模板,它使用我的“主页字段组”中的字段。我的“关于我们”页面显示“关于字段组”中的ACF字段以及我的“主页字段组”中的一些字段。 我从我的主页组通过引用以下php代码的ACF字段得到字段: 来自主页上的主页字段组,段落来自我的关于我们页面介绍字段,来自关于字段组。 我想做一些类似的事情,但从自定义帖子类型(不
我希望有人能帮我创建我需要的查询。我引用这个留档的元素或额外的小部件,“额外的帖子”:https://developers.elementor.com/custom-query-filter/ 现在,我可以在编辑器中设置查询以显示来自多个类别的帖子。问题是,查询显示来自“红色”或“蓝色”的帖子。我需要查询来显示标记为“红色”和“蓝色”的帖子。 我使用自定义帖子类型和自定义类别,这似乎是有意义的例子