2017-10-02 10 views
0

私はfollowing threadの回答としてQuadieと同じ質問をしました。特定のカテゴリのWooCommerce製品ウィジェット - ウィジェットごとにカテゴリ配列を設定します

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の製品ウィジェットを、カテゴリ2の製品ウィジェットをページxのどこかに追加したいとします。

shortcode &カテゴリをこのショートコードの配列として指定していますが、これを実装する方法は不明です。

この問題に関するご意見はありますか?


これは、私が使用しようとしたショートです:

[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'); 

を。

答えて

1

私のコードを拡張することはできません "個別ウィジェットごとのカテゴリを設定できるようにする"。あなたのショートだけについては

私はあなたがそのための任意のコードのカスタマイズを必要としないと思います。

あなたはWooCommerce Shortcodesに関連WooCommerce公式のドキュメントを見て私、あなたはセクション"Product category"にこの短いコードが表示されます:[product_category]、メインの引数はあなたが1つの製品カテゴリにナメクジを追加することができます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". 
); 

しかし、あなたが希望として、それは動作しません。あなたの製品ウィジェットにが定義されたカテゴリの製品グリッドループを表示するので、


独自のウィジェットを作成する必要があります。

+0

返信いただきありがとうございます。実際、私は[product_category]のショートコードを認識していましたが、これを代替として使用しています。しかし、あなたが言及しているように、製品ウィジェットのように、グリッドを使用する代わりにリストに製品を表示したいと思います。したがって、私の貧しい試みは、製品のウィジェットのコードをカスタマイズする。 – BarrieO

+1

こんにちは、私はupvotedしかし、私は非常にSEに新しいので、私の評判は15を超えていません。したがって、私のupvotesは記録されているが、示されていません。それは私がupvotingときに得るメッセージです。ごめんなさい! – BarrieO

関連する問題