私は新しいサイトを構築していますが、Woocommerce にはかなり慣れています。各カテゴリの製品数を取得するための簡単なトリックが必要です。各製品のカテゴリを既に呼び出していますが、そのカテゴリから製品数を取得する方法がわかりません。
私は自分の製品 (実際にはアクティビティ サイトのアクティビティ) に使用するリスト スタイルを持っています。画像をチェックしてください。
カテゴリの横にある「アクティビティ」の数をエコーアウトしたいだけです。これが私のカテゴリを取得する方法です:
echo $product->get_categories( ', ', '<span class="posted_in">' . _n( 'Category:', 'Categories:', sizeof( get_the_terms( $post->ID, 'product_cat' ) ), 'woocommerce' ) . ' ', '.</span>' );
次を使用してカウントを取得しようとしました:
$numposts = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = 'publish'");
echo $numposts;
しかし、それはいくつかの奇妙な数字をエコーし ています。そのクエリのいくつかのバリエーションを試して、製品などを呼び出しました。
[アップデート]
これは私ができたことです:
<li><?php
$cat1 = $product->get_categories( ', ', '<span class="posted_in">' . _n( 'Category:', 'Categories:', sizeof( get_the_terms( $post->ID, 'product_cat' ) ), 'woocommerce' ) . ' ', '.</span>' );
echo $cat1;
/*
$args = array( 'taxonomy' => 'product_cat' );
$terms = get_terms('product_cat', $args);
echo count($terms);
*/
$args = array( 'post_type' => 'product', 'taxonomy' => $cat1[0] );
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
echo count( $loop->post->ID )
endwhile;
wp_reset_query(); // Remember to reset
?></li>
しかし、実際には、すべてのカテゴリのすべての製品を「1」ずつ数えます....したがって、「category: abc has "3" product」をエコーする代わりに、「category: abc has "1 1 1 1 1 1 1」をエコーします。 "
ここでできる簡単なフィルターがあることを知っています。まさにそこにいるような気がします。