2017-12-30 19 views

Antwort

0

Dies ist möglich, mit einer benutzerdefinierten Funktion, in der Sie Ihre "Eltern" Produktkategorie Slug gesetzt werden:

function get_product_subcategories_list($category_slug){ 
    $terms_html = array(); 
    $taxonomy = 'product_cat'; 
    // Get the product category (parent) WP_Term object 
    $parent = get_term_by('slug', $category_slug, $taxonomy); 
    // Get an array of the subcategories IDs (children IDs) 
    $children_ids = get_term_children($parent->term_id, $taxonomy); 

    // Loop through each children IDs 
    foreach($children_ids as $children_id){ 
     $term = get_term($children_id, $taxonomy); // WP_Term object 
     $term_link = get_term_link($term, $taxonomy); // The term link 
     if (is_wp_error($term_link)) $term_link = ''; 
     // Set in an array the html formated subcategory name/link 
     $terms_html[] = '<a href="' . esc_url($term_link) . '" rel="tag" class="' . $term->slug . '">' . $term->name . '</a>'; 
    } 
    return '<span class="subcategories-' . $category_slug . '">' . implode(', ', $terms_html) . '</span>'; 
} 

Der Code geht in die Datei function.php Ihres aktiven untergeordneten Themas (oder aktiven Themes).

Getestet und funktioniert.


Anwendungsbeispiel:

echo get_product_subcategories_list('clothing'); 

Sie erhalten eine horizontale Koma getrennte Liste (mit Links) aller Unterkategorien für diese bestimmte Kategorie

+0

danke für das schnipsel. Jetzt werden jedoch sowohl Unterkategorien als auch Unterunterkategorien angezeigt. Ich möchte es in einer ul mit den Unterkategorien unter ihren Elternkategorien haben? Wie soll ich das machen? – cvl01

1

Dies ist der Code für get Unterkategorie der jeweiligen Kategorie:

$categories = get_the_terms(get_the_ID(), 'product_cat'); 

//For checking category exit or not 

if ($categories && ! is_wp_error($category)) : 


    foreach($categories as $category) : 
     // get the children (if any) of the current cat 
     $children = get_categories(array ('taxonomy' => 'product_cat', 'parent' => $category->term_id)); 

    if (count($children) == 0) { 
     // if no children, then echo the category name. 
     echo $category->name; 
    } 
    endforeach; 

endif; 
+0

Sorry für mein kleines Wissen, aber wo tun Ich füge die Katzenschnecke ein? – cvl01

Verwandte Themen