2014-10-02 10 views
6

Próbuję dodać kategorię nadrzędną produktu z Woocommerce jako klasę do tagu wordpress 'body.Dodaj kategorię nadrzędną Woocommerce do WP 'body' class

Za każdym razem, gdy odwiedzam kategorię podrzędną, kategoria nadrzędna nie należy już do klasy body.

Czy można zmienić coś w stylu poniżej, aby znaleźć kategorię nadrzędną i dodać ją w znaczniku body?

Może termin taki jak "product_parent_cat"? Próbowałem to i szukał ich API, ale bez powodzenia ..

function woo_custom_taxonomy_in_body_class($classes){ 
    $custom_terms = get_the_terms(0, 'product_cat'); 
    if ($custom_terms) { 
     foreach ($custom_terms as $custom_term) { 
     $classes[] = 'product_cat_' . $custom_term->slug; 
     } 
    } 
    return $classes; 
} 

add_filter('body_class', 'woo_custom_taxonomy_in_body_class'); 

Odpowiedz

7

można spróbować tej modyfikacji (niesprawdzone):

function woo_custom_taxonomy_in_body_class($classes){ 
    $custom_terms = get_the_terms(0, 'product_cat'); 
    if ($custom_terms) { 
     foreach ($custom_terms as $custom_term) { 

     // Check if the parent category exists: 
     if($custom_term->parent > 0) { 
      // Get the parent product category: 
      $parent = get_term($custom_term->parent, 'product_cat'); 
      // Append the parent class: 
      if (! is_wp_error($parent)) 
       $classes[] = 'product_parent_cat_' . $parent->slug; 
     } 

     $classes[] = 'product_cat_' . $custom_term->slug; 
     } 
    } 
    return $classes; 
} 

add_filter('body_class', 'woo_custom_taxonomy_in_body_class'); 

aby dodać kategorię produktów ślimaki rodzic do klasy ciała.

Tutaj używamy właściwości parent terminu obiekt zwracany przez funkcję get_term().

+0

dziękuję! przybiłem to. – blkedy

+0

@ user1420650 Cieszę się, że to zadziałało. – birgire

+0

Nowości od 2017 roku. Nadal pracuję nad Woocommerce 3.0+ i Wordpress 4.8 –

Powiązane problemy