2014-10-02 3 views
6

Я пытаюсь добавить родительскую категорию продукта из Woocommerce в качестве класса в wordpress 'body.Добавить родительскую категорию Woocommerce в класс WP 'body'

Каждый раз, когда я перехожу в дочернюю категорию, родительская категория больше не находится в классе body.

Может ли редактироваться что-то вроде ниже, чтобы найти родительскую категорию и добавить в тег тела?

Возможно, термин типа "product_parent_cat"? Пытался это и искал их API, но не успеха ..

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'); 

ответ

7

Вы можете попробовать эту модификацию (непроверенную):

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'); 

добавить слизняк категории родительского продукта класса тела.

Здесь мы используем свойство объекта parent объекта, возвращаемого функцией get_term().

+0

спасибо! Успешно справился. – blkedy

+0

@ user1420650 Рад слышать, как это сработало для вас. – birgire

+0

Новости с 2017 года. Все еще работает на Woocommerce 3.0+ и Wordpress 4.8 –

Смежные вопросы