質問: woocommerceはリストにクラス名を追加します 現在、上書きするwoocommerce.phpファイルをカスタマイズしようとしています。さて、このファイルでは、<section id="content woocommerce" class="grid-block woocommerce"> <ul id="products" class="subcategory-products products"> <?php woocommerce_content(); ?> </ul> </section> 出力は好きです:<li class="post-15 product type-product status-publish hentry first instock"> <a href="http://shop.bbpixelz.dk/product/i-phone-ai-template/"> <img width="150" height="150" src="http://shop.bbpixelz.dk/wp-content/uploads/2014/01/iphone-ai-template-150x150.png" class="attachment-shop_catalog wp-post-image" alt="iphone-ai-template"> <h3>i-phone vector template</h3> <span class="price"><span class="amount">$2</span></span> </a> <a href="/?add-to-cart=15" rel="nofollow" data-product_id="15" data-product_sku="ai-iphone" class="add_to_cart_button button product_type_simple">add to cart</a> </li> 私がやろうとしているのは、クラス名を変更することです。現在のクラス名はpost-15 product ...です。クラス名を商品カテゴリに変更したいのですが。誰かが私を手伝ってくれる?
回答: 製品リスト内のクラスを処理するために使用できる特別なフックはありません。そのため、「woocommerce」プラグインの「template」フォルダにある「content-product.php」を編集する必要があります。以下のコードを追加することができます。$product_id = get_the_id(); $result = wp_get_post_terms($product_id,'product_cat'); if(!empty($result)){ $term = ''; foreach($result as $single_result) { $term .= ' ' . $single_result->slug; } $classes[] = $term; } 後、$classes = array(); ステートメント。これにより、次のような出力が得られます。<ul class="products"> <li class="post-246 product type-product status-publish hentry general first sale instock"> <li class="post-33 product type-product status-publish hentry sale instock"> <li class="post-244 product type-product status-publish hentry general special sale instock"> </ul> ここで、 "general"と "special"はカテゴリです。ここで私はフェッチしています、商品カテゴリナメクジと商品クラスにそれを追加します。