簡體   English   中英

特定類別的WooCommerce產品小部件-為每個小部件設置類別數組

[英]WooCommerce products widget for a specific category - set category array per widget

我在以下線程中回答了與Quadie相同的問題。

LoicTheAztec提供的代碼非常有用...

add_filter( 'woocommerce_products_widget_query_args', function( $query_args ){
    // Set HERE your product category slugs 
    $categories = array( 'music', 'posters' );

    $query_args['tax_query'] = array( array(
        'taxonomy' => 'product_cat',
        'field'    => 'slug',
        'terms'    => $categories,
    ));

    return $query_args;
}, 10, 1 );

...但是我想知道是否有擴展此代碼的選項,以便能夠為每個單獨的小部件設置類別。 例如,我想要頁面x上類別1的產品小部件,而我希望頁面x上其他位置的類別2的產品小部件。

我正在考慮使用簡碼 ,並將類別指定為此簡碼的數組,但不確定如何實現。

對這個問題有什么想法嗎?


這是我嘗試使用的簡碼:

[productsbycat cat1="broodjes"]

&觸發以下代碼:

function productsbycat_func( $atts ) {
    $categories = shortcode_atts( array(
        'cat1' => 'something',
        'cat2' => 'something else',
    ), $atts );

    add_filter( 'woocommerce_products_widget_query_args', function ( $query_args ){

        $query_args['tax_query'] = array( array(
            'taxonomy' => 'product_cat',
            'field'    => 'slug',
            'terms'    => $categories,
        ));

        return $query_args;
    }, 10, 1 );
 }

add_shortcode( 'productsbycat', 'productsbycat_func' );

但是,它尚未生成任何東西。

無法擴展我的代碼“以便能夠為每個單獨的小部件設置類別”。

僅對於您的短代碼,我認為您不需要為此進行任何代碼自定義。

我查看與WooCommerce簡碼相關的WooCommerce官方文檔,您將在“產品類別”部分看到以下短代碼: [product_category] ,其主要參數是category

您可以通過以下方式添加一個產品類別標簽

[product_category category="clothing"] // One product category

或對於許多產品類別段塞 (以逗號分隔)是這樣的:

[product_category category="posters,music"]

可以更改的默認參數設置為:

$args = array(
    'per_page' => "12",
    'columns' => "4",
    'orderby' => 'title', // or by "menu_order"
    'order' => "asc", // or "desc"
    'category' => "" // Always only product category slugs
    'operator' => "IN" // Possible values are "IN", "NOT IN", "AND".
);

但是它無法像您在產品小部件中那樣工作,因為它將顯示已定義類別的產品網格循環


您應該需要構建自己的小部件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM