2016-05-16 14 views
-1

商品カテゴリのスラッグに関連するボディクラスを追加するにはどうすればよいですか?WooCommerceで商品カテゴリに関連するボディクラスを追加

ありがとうございました!

+1

こんにちは、投稿する前にこの記事をお読みください:http://stackoverflow.com/help/how-to-askすべての記事を読むstackoverflow良い質問をするには:http://stackoverflow.com/help –

答えて

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がありません(' –

関連する問題