2016-05-16 104 views

回答

2

添加到您的功能.php

add_filter('body_class', 'wc_cat_names'); 
function wc_cat_names($classes) { 
    if(is_product()){ 
    global $post; 
    $terms = get_the_terms($post->ID, 'product_cat'); 
     foreach ($terms as $term) { 
      $classes[] = $term->slug; 
     } 
    } 
    return $classes; 
} 

這個只會在woocommerce產品頁面上工作,而且我在我的測試網站上測試過。

1

目前正是這種做對WordPress的支持網站一個很好的指南:Modify body_class() output to show category-{slug} for single posts

我已經改變了代碼的帖子,以滿足您的需求:

add_filter('body_class','add_category_to_single'); 
function add_category_to_single($classes, $class) { 
    if (is_single()) { 
     global $post; 
     foreach((get_the_category($post->ID)) as $category) { 
      echo $category->cat_name . ' '; 
      // add category slug to the $classes array 
      $classes[] = $category->slug; 
     } 
    } 
    // return the $classes array 
    return $classes; 
} 
+0

老實說,不,在回答的時候。我在之前的項目中使用了它的修改版本,這就是爲什麼我記得這個帖子的原因。 – emilchristensen

+0

但根據[WordPress的Codex:body_class](https://codex.wordpress.org/Function_Reference/body_class)它應該仍然是一個有效的鉤子。 – emilchristensen

+0

這給了我一個PHP錯誤,並將body_class添加到另一個div。錯誤:'警告:add_category_to_single缺少參數2(' –

相關問題