2017-12-05 53 views
0

私は現在、WooCommerceウェブストアに取り組んでいます。カテゴリ別に店舗を選択しています。フロントページには現在、最初の3つのカテゴリが表示されています。ランダム化WooCommerce "カテゴリ別"

最初の3つのカテゴリの代わりに、3つのランダムなカテゴリを表示したいと思います。

function.php(下のコード)にカスタム関数を追加して、リストされたカテゴリの数を増やすことができましたが(10まで)、カテゴリをランダムな順序で表示することはできません。

add_filter('storefront_product_categories_shortcode_args','custom_storefront_category_per_page'); 

// Category Products 
function custom_storefront_category_per_page($args) { 
    $args['number'] = 10; 
    return $args; 
} 

私は$ args ['orderby'] = "rand"を設定するのに疲れました。運がない。私が推測しているのは、製品のためにしか動作しません。トップページの "Shop By Category"セクションにAESCまたはDESC注文の3つのカテゴリの代わりに3つのランダムなカテゴリが表示されるようにするには、どのような機能を変更する必要がありますか?

答えて

1

あなたのケースでorderby = randが動作しない場合は、以下の手法を試してみてください。

- まず、ページに表示する商品のランダムカテゴリを取得する必要があります。

- ショートコードに渡します。

$categories = get_terms(array(
    'taxonomy' => 'product_cat', 
    'hide_empty' => true, 
)); 

$all_cat = array(); 

foreach($categories as $cat){ 

$all_cat[] = $cat->name; 

} 

$random_cat // get and create random category with comma seperated. and pass it to the shortcode. 
$randomCat = "tshirt, shirt"; 

echo do_shortcode('[products limit="8" columns="4" category="$randomCat" cat_operator="AND"]'); ?> 
+0

これは子テーマのfunction.phpに入りますか?あなたの例では関数またはリストの$ random_catですか? –

+0

こんにちは $ all_cat配列にすべてのカテゴリ名があります。次に、ランダム化されたカテゴリを選択し、$ randomCatのようにカンマ区切りのカテゴリの文字列を作成し、ショートコードに渡す必要があります。 –

関連する問題