WooCommerceを使用してすべての製品をカテゴリ別に表示
-
-
必要なのはループのループだけです.`foreach()`内で、新しい `WP_Query()`を実行して、その用語のすべての製品を取得し、それらをループします.You simply need a loop of loops. Inside your `foreach()`, run a new `WP_Query()` to grab all the products in that term.. and then loop through those.
- 0
- 2014-03-25
- helgatheviking
-
私はこれを行う方法を理解していると思いますが、PHPでカテゴリ別に製品をリストすることについては何も見つかりません(私が見つけることができるのはショートコードのナンセンスだけです).そのコードがどのように見えるかを見せていただければ、残りの部分を理解できるはずです.I think I understand how to do this, but I can't find anything about listing products by category with PHP (all I can find is shortcode nonsense). If you can show me what that code looks like, I should be able to figure out the rest.
- 0
- 2014-03-25
- JacobTheDev
-
ショートコードは必要ありません.カテゴリ別に商品を一覧表示するのは、[Tax Query](http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters)だけです.You don't need a shortcode, listing products by category is just a [Tax Query](http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters).
- 2
- 2014-03-25
- helgatheviking
-
私はショートコードが必要ないことを知っていました、私はそれが私が見つけることができるすべてであると言っていました、それは役に立たなかった.あなたが提供したそのリンクは有望に見えます、私はそれを明日ショットして報告します、ありがとう.I knew I didn't need a shortcode, I was saying that's all I could find, which was unhelpful. That link you provided looks promising, I'll give it a shot tomorrow and report back, thanks.
- 0
- 2014-03-25
- JacobTheDev
-
OK.それでも問題が解決しない場合は、新しいコーディングの試みで質問を編集してください.確認します.Ok. If you are still stuck, edit your question with your new coding attempt and I'll take a look.
- 1
- 2014-03-25
- helgatheviking
-
1 回答
- 投票
-
- 2014-03-26
理解しました!以下のコードは、すべてのカテゴリと各カテゴリの投稿を自動的に一覧表示します!
$args = array( 'number' => $number, 'orderby' => 'title', 'order' => 'ASC', 'hide_empty' => $hide_empty, 'include' => $ids ); $product_categories = get_terms( 'product_cat', $args ); $count = count($product_categories); if ( $count > 0 ){ foreach ( $product_categories as $product_category ) { echo '<h4><a href="' . get_term_link( $product_category ) . '">' . $product_category->name . '</a></h4>'; $args = array( 'posts_per_page' => -1, 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'product_cat', 'field' => 'slug', // 'terms' => 'white-wines' 'terms' => $product_category->slug ) ), 'post_type' => 'product', 'orderby' => 'title,' ); $products = new WP_Query( $args ); echo "<ul>"; while ( $products->have_posts() ) { $products->the_post(); ?> <li> <a href="<?php the_permalink(); ?>"> <?php the_title(); ?> </a> </li> <?php } echo "</ul>"; } }
Figured it out! The code below automatically lists all categories and each categories posts!
$args = array( 'number' => $number, 'orderby' => 'title', 'order' => 'ASC', 'hide_empty' => $hide_empty, 'include' => $ids ); $product_categories = get_terms( 'product_cat', $args ); $count = count($product_categories); if ( $count > 0 ){ foreach ( $product_categories as $product_category ) { echo '<h4><a href="' . get_term_link( $product_category ) . '">' . $product_category->name . '</a></h4>'; $args = array( 'posts_per_page' => -1, 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'product_cat', 'field' => 'slug', // 'terms' => 'white-wines' 'terms' => $product_category->slug ) ), 'post_type' => 'product', 'orderby' => 'title,' ); $products = new WP_Query( $args ); echo "<ul>"; while ( $products->have_posts() ) { $products->the_post(); ?> <li> <a href="<?php the_permalink(); ?>"> <?php the_title(); ?> </a> </li> <?php } echo "</ul>"; } }
-
いいね.本当に夢中になりたい場合は、[Transients API](https://codex.wordpress.org/Transients_API)...を調べて、ページが読み込まれるたびに多くのクエリを実行しないようにすることをお勧めします.Nice. If you want to get really crazy you might want to look into the [Transients API](https://codex.wordpress.org/Transients_API)... that would help keep you from running so many queries on every page load.
- 0
- 2014-03-26
- helgatheviking
-
各カテゴリの画像サムネイルを取得するにはどうすればよいですか?How can I get the image thumbnails for each category?
- 0
- 2016-03-06
- Alyssa Reyes
-
@AlyssaReyesカテゴリには、本質的にサムネイルがありません.このために、カテゴリにカスタムフィールドを設定しましたか?これを新しい質問にもっと詳しく投稿して、理解を深めるためにリンクを送っていただけませんか.@AlyssaReyes categories don't inherently have thumbnails; did you set up a custom field for your categories for this? Could you post this in a new question with more detail and send me the link so I can better understand?
- 0
- 2016-03-07
- JacobTheDev
-
ありがとう、あなたは私をしばらく節約し、正しい方向に導いてくれました.この答えを改善できる唯一の方法は、WooCommerceの組み込みクエリクラスである `WP_Query`の代わりに` WC_Product_Query`を使用し、次に `while`ループの代わりに`foreach`ループを使用することです.理由については、クエリのGithubドキュメント(https://github.com/woocommerce/woocommerce/wiki/wc_get_products-and-WC_Product_Query#description)を参照してください.ただし、要点は次のとおりです.>「カスタムWP_Queriesクエリは次のようになります.パフォーマンスを向上させるためにデータがカスタムテーブルに移動するときに、WooCommerceの将来のバージョンでコードを壊してください.」Thanks man, you saved me some time and set me in the right direction. The only way I could improve this answer is to use WooCommerce's built-in query class: `WC_Product_Query`, instead of `WP_Query`, then use a `foreach` loop instead of a `while` loop. For reasons why, take a look at the Github documentation for the query: https://github.com/woocommerce/woocommerce/wiki/wc_get_products-and-WC_Product_Query#description, but the gist is: > "custom WP_Queries queries is likely to break your code in future versions of WooCommerce as data moves towards custom tables for better performance."
- 1
- 2019-07-05
- UncaughtTypeError
WooCommerceでは、ストア内のすべてのカテゴリを見出しとして表示し、それらのすべての製品を以下の順序なしリストに表示したいと思います.これは可能ですか?カテゴリのリストまたは特定のカテゴリの製品のリストを表示できるものをいくつか見てきましたが、説明した方法ですべてをループするものはありません.
現在、すべてのカテゴリを一覧表示するために使用しているものは次のとおりです.