wordpress - Woocommerce 按类别获取所有产品变体
问题描述
我需要获取属于所选类别的所有 Woocommerce 产品变体。我试图这样查询:
$args = array(
'post_type' => 'product_variation',
'post_status' => array( 'private', 'publish' ),
'tax_query' => array(
'taxonomy' => 'product_cat',
'field' => 'term_id',
'terms' => $selected_category_id
)
);
$variations = get_posts( $args );
但是“tax_query”部分似乎被忽略了,无论里面提供什么,它都不影响查询。
任何想法如何做到这一点?
解决方案
重要提示:tax_query 接受一个税查询参数数组的数组(它接受一个数组数组)。此构造允许您通过使用第一个(外部)数组中的关系参数来查询多个分类法,以描述分类法数组之间的布尔关系。
我建议你使用new WP_QUERY()而不是get_posts()使用 WP_QUERY 你可以看到查询通过你的参数运行var_dump($variations->request);
$args = array(
'post_type' => 'product_variation',
'post_status' => array('private', 'publish'),
'tax_query' => array(
array(
'taxonomy' => 'product_cat',
'field' => 'term_id',
'terms' => $selected_category_id
)
)
);
$variations = new WP_Query($args);
var_dump($variations->request); // dump SQL query
推荐阅读
- r - 嵌入在 R 包中的闪亮应用和数据
- php - Laravel Eloquent 模型复杂查询
- amazon-web-services - AWS - 托管 Web 应用程序的客户端(HTML、CSS、JS、图像文件)的推荐方式是什么?
- cluster-analysis - 在给定地图中对消防队、警察、救护车进行聚类时使用的最佳聚类算法是什么?
- java - 为什么 ENUM 不能在 H2 的子查询中工作?
- python - Python3 命令行和 argparse 问题
- c++ - C++,检查用户是否在一个字符中输入了多个字母
- c# - c#通过单击按钮停止线程
- ruby-on-rails - 仅从 React Native App 访问 AWS s3 文件
- regex - 正则表达式匹配同一行中的多个匹配项,可选文本之间