显示与特定属性关联的产品

时间:2019-07-21 作者:Bluestocking

我目前正在构建一个词汇表页面,列出一个特定的产品属性,并希望链接到与该属性的每个术语相关联的每个产品。

我想我应该使用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>\';
    }
}
知道我做错了什么吗?

1 个回复
SO网友:Bluestocking

中的错误wc_get_products 被@SallyCJ抓住解决了我的问题。

我在那里ingredients, 我需要pa_ingredients.

工作代码如下:

$taxonomy = \'pa_ingredients\';
$terms = get_terms( $taxonomy );
foreach ( $terms as $term ) {
    $products = wc_get_products( array( \'pa_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>\';
    }
}
谢谢!

相关推荐