WooCommerce - get category for product page

前端 未结 5 1628
野趣味
野趣味 2020-11-30 03:13

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...

func         


        
相关标签:
5条回答
  • 2020-11-30 03:25

    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
        }
    }
    
    
    ?>
    
    0 讨论(0)
  • 2020-11-30 03:34

    $product->get_categories() is deprecated since version 3.0! Use wc_get_product_category_list instead.

    https://docs.woocommerce.com/wc-apidocs/function-wc_get_product_category_list.html

    0 讨论(0)
  • 2020-11-30 03:36

    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.

    0 讨论(0)
  • 2020-11-30 03:37

    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>' ); ?>
    
    0 讨论(0)
  • 2020-11-30 03:49
    <?php
       $terms = get_the_terms($product->ID, 'product_cat');
          foreach ($terms as $term) {
    
            $product_cat = $term->name;
               echo $product_cat;
                 break;
      }
     ?>
    
    0 讨论(0)
提交回复
热议问题