我目前正在构建一个词汇表页面,列出一个特定的产品属性,并希望链接到与该属性的每个术语相关联的每个产品。
我想我应该使用wc_get_products with a custom filter, 但只能使其显示所有产品,而不考虑关联的属性项。
以下是我现有的自定义筛选器:
function my_handle_custom_query_var( $query, $query_vars ) {
if ( !empty( $query_vars[\'pa_ingredients\'] ) ) {
$query[ \'tax_query\' ][] = array(
\'taxonomy\' => \'pa_ingredients\',
\'field\' => \'slug\',
\'terms\' => $query_vars[\'pa_ingredients\'],
\'operator\' => \'IN\',
);
}
return $query;
}
add_filter( \'woocommerce_product_data_store_cpt_get_products_query\', \'my_handle_custom_query_var\', 10, 2 );
下面是我用来显示相关产品的代码:
$taxonomy = \'pa_ingredients\';
$terms = get_terms( $taxonomy );
foreach ( $terms as $term ) {
$products = wc_get_products( array( \'ingredients\' => $term->slug ) );
foreach ( $products as $product ) {
$product_id = wc_get_product_id_by_sku( $product->sku );
$link = get_permalink( $product_id );
echo \'<a href="\' . $link . \'">\' . $product->name . \'</a>\';
}
}
知道我做错了什么吗?