WooCommerce - get category for product page

匿名 (未验证) 提交于 2019-12-03 02:14:01

问题:

For my WC product pages, I need to add a class to the body tag so that I can perform some custom styling. Here's the function I'm creating for this...

function my_add_woo_cat_class($classes) {      $wooCatIdForThisProduct = "?????"; //help!      // add 'class-name' to the $classes array     $classes[] = 'my-woo-cat-id-' . $wooCatIdForThisProduct;     // return the $classes array     return $classes; }  //If we're showing a WC product page if (is_product()) {     // Add specific CSS class by filter     add_filter('body_class','my_add_woo_cat_class'); } 

...but how do I get the WooCommerce cat ID?

回答1:

A WC product may belong to none, one or more WC categories. Supposing you just want to get one WC category id.

global $post; $terms = get_the_terms( $post->ID, 'product_cat' ); foreach ($terms as $term) {     $product_cat_id = $term->term_id;     break; } 

Please look into the meta.php file in the "templates/single-product/" folder of the WooCommerce plugin.

<?php echo $product->get_categories( ', ', '<span class="posted_in">' . _n( 'Category:', 'Categories:', sizeof( get_the_terms( $post->ID, 'product_cat' ) ), 'woocommerce' ) . ' ', '.</span>' ); ?> 


回答2:

I literally striped out this line of code from content-single-popup.php located in woocommerce folder in my theme directory.

global $product;  echo $product->get_categories( ', ', ' ' . _n( ' ', '  ', $cat_count, 'woocommerce' ) . ' ', ' ' ); 

Since my theme that I am working on has integrated woocommerce in it, this was my solution.



回答3:

Thanks Box. I'm using MyStile Theme and I needed to display the product category name in my search result page. I added this function to my child theme functions.php

Hope it helps others.

/* Post Meta */   if (!function_exists( 'woo_post_meta')) {     function woo_post_meta( ) {         global $woo_options;         global $post;          $terms = get_the_terms( $post->ID, 'product_cat' );         foreach ($terms as $term) {             $product_cat = $term->name;             break;         }  ?> <aside class="post-meta">     <ul>         <li class="post-category">             <?php the_category( ', ', $post->ID) ?>                         <?php echo $product_cat; ?>          </li>         <?php the_tags( '<li class="tags">', ', ', '</li>' ); ?>         <?php if ( isset( $woo_options['woo_post_content'] ) && $woo_options['woo_post_content'] == 'excerpt' ) { ?>             <li class="comments"><?php comments_popup_link( __( 'Leave a comment', 'woothemes' ), __( '1 Comment', 'woothemes' ), __( '% Comments', 'woothemes' ) ); ?></li>         <?php } ?>         <?php edit_post_link( __( 'Edit', 'woothemes' ), '<li class="edit">', '</li>' ); ?>     </ul> </aside> <?php     } }   ?> 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!