WooCommerce - excelling eCommerce
Display specific categories in list form - working code example provided (3 posts)

  1. jayseventwo
    Posted 2 years ago #

    Hi guys, i have the code below which displays all my categories and sub categories in list form, which works perfectly for what i want, but i would like to be able to choose a specific category to choose instead of them all - can this be done? (instead of showing all product_cat, show product_cat = "outdoors" )

    if ( is_front_page() ) {
    function get_product_terms( $term_id ) {
    		$html = '';
    		$args = array( 'hide_empty' => 0, 'parent' => $term_id );
    		$terms = get_terms('product_cat', $args);
    		foreach ($terms as $term) {
    			$html .= '<li';
    			if( $term_id == 0 ) {
    				$html .= ' class="top_li"';
    			$html .= '><a href="'.get_term_link($term->slug, 'product_cat').'">' . $term->name . '</a>';	
    			if( $list = get_product_terms( $term->term_id )) {
    				$html .= '<ul class="second_level">'.$list.'</ul>';
    			$html .= '</li>';
    		return $html;
    	if( $list = get_product_terms( 0 )) {
    		echo '<ul id="top_ul">'.$list.'</ul><div style="clear:both;">';
      global $post;

    Thanks in advance for any help.


  2. Paul
    Posted 2 years ago #

    Just to clarify, you are looking to list all subcategories of a specific category? If so, then this function is already setup to do just that. SImply call this function and insert the term_id for the "outdoors" in the args for that function.

    For instance, if your "outdoors" category has a term_id of "3" your call to this function would look like this:

    <?php get_product_terms( 3 ); ?>

    It seems like the code you have listed here is setup to only run on the front page, so if you might want to copy this function and paste it with a different function name somewhere in your functions file so you can use it elsewhere.

  3. jayseventwo
    Posted 2 years ago #

    Thanks for your reply. I only wanted it to display on the front page, but your idea is much better. Unfortunately, i have added it to my functions.php and am getting this error:

    Catchable fatal error: Object of class WP_Error could not be converted to string in /home/jayseven/public_html/woo/wp-content/themes/jayseventwo/lib/custom.php on line 22

    Line 22 is:
    $html .= '><a href="'.get_term_link($term->slug, 'product_cat').'">' . $term->name . '</a>';

    Any ideas?

    Also, would the category id also be the tag_id, as i cannot actually see that category id anywhere?

    I will keep on trying to resolve this issue, but if you have any ideas that would be great. Thanks.

Topic Closed

This topic has been closed to new replies.

About this Plugin

  • WooCommerce - excelling eCommerce
  • Frequently Asked Questions
  • Support Threads
  • Reviews

About this Topic