Title: Вывести класс в зависимости от категории
Last modified: 20.09.2020

---

# Вывести класс в зависимости от категории

 *  [hypero](https://ru.wordpress.org/support/users/hypero/)
 * (@hypero)
 * [6 лет назад](https://ru.wordpress.org/support/topic/%d0%b2%d1%8b%d0%b2%d0%b5%d1%81%d1%82%d0%b8-%d0%ba%d0%bb%d0%b0%d1%81%d1%81-%d0%b2-%d0%b7%d0%b0%d0%b2%d0%b8%d1%81%d0%b8%d0%bc%d0%be%d1%81%d1%82%d0%b8-%d0%be%d1%82-%d0%ba%d0%b0%d1%82%d0%b5%d0%b3%d0%be/)
 * Всем привет.
 * Пытаюсь вывести нужный класс в зависимости от того в какой категории woocommerce
   находимся.
    Есть такой код:
 *     ```
       <?php 
         $home_class = '';
         if(is_product_category('dairy')) {
           $home_class = 'dairy-header';
         }
         elseif(is_product_category('home')) {
           $home_class = 'home-header';
         } elseif(is_product_category('wellness')) {
           $home_class = 'wellness-header';
         }
       ?>
       ```
   
 * `<header class="header <?php echo $home_class; ?>">`
 * Оно работает только если находимся в родительской категории, а в дочерних не 
   работает.

Просмотр 14 ответов — с 1 по 14 (всего 14)

 *  [ipsoltl](https://ru.wordpress.org/support/users/ipsoltl/)
 * (@ipsoltl)
 * [6 лет назад](https://ru.wordpress.org/support/topic/%d0%b2%d1%8b%d0%b2%d0%b5%d1%81%d1%82%d0%b8-%d0%ba%d0%bb%d0%b0%d1%81%d1%81-%d0%b2-%d0%b7%d0%b0%d0%b2%d0%b8%d1%81%d0%b8%d0%bc%d0%be%d1%81%d1%82%d0%b8-%d0%be%d1%82-%d0%ba%d0%b0%d1%82%d0%b5%d0%b3%d0%be/#post-12195825)
 * А оно и не должно работать в дочерних. Функция is_product_category проверяет 
   находитесь ли вы в данной категории или нет.
    Если уж хотите ее использовать 
   то используйте массив:
 *     ```
       <?php 
         $home_class = '';
         if(is_product_category( array ('dairy', tyt nazvanie podcategorii i t.d.))) {
           $home_class = 'dairy-header';
         }
         elseif(is_product_category( array ('home', tyt nazvanie podcategorii i t.d.))) {
           $home_class = 'home-header';
         } elseif(is_product_category( array ('wellness', tyt nazvanie podcategorii i t.d.))) {
           $home_class = 'wellness-header';
         }
       ?>
       ```
   
 *  Автор [hypero](https://ru.wordpress.org/support/users/hypero/)
 * (@hypero)
 * [6 лет назад](https://ru.wordpress.org/support/topic/%d0%b2%d1%8b%d0%b2%d0%b5%d1%81%d1%82%d0%b8-%d0%ba%d0%bb%d0%b0%d1%81%d1%81-%d0%b2-%d0%b7%d0%b0%d0%b2%d0%b8%d1%81%d0%b8%d0%bc%d0%be%d1%81%d1%82%d0%b8-%d0%be%d1%82-%d0%ba%d0%b0%d1%82%d0%b5%d0%b3%d0%be/#post-12195826)
 * если подкатегории будут в будущем прибавляться лесть в код и добавлять это всё
   очень мучительно, нельзя сделать как-то проверку дочерних категорий?
    -  Ответ изменён 6 лет назад пользователем [hypero](https://ru.wordpress.org/support/users/hypero/).
    -  Ответ изменён 6 лет назад пользователем [hypero](https://ru.wordpress.org/support/users/hypero/).
 *  [ipsoltl](https://ru.wordpress.org/support/users/ipsoltl/)
 * (@ipsoltl)
 * [6 лет назад](https://ru.wordpress.org/support/topic/%d0%b2%d1%8b%d0%b2%d0%b5%d1%81%d1%82%d0%b8-%d0%ba%d0%bb%d0%b0%d1%81%d1%81-%d0%b2-%d0%b7%d0%b0%d0%b2%d0%b8%d1%81%d0%b8%d0%bc%d0%be%d1%81%d1%82%d0%b8-%d0%be%d1%82-%d0%ba%d0%b0%d1%82%d0%b5%d0%b3%d0%be/#post-12195829)
 * wc_get_product_category_list() можно пробовать.
    get_the_terms() как вариант 
   можно попробовать.
 *  Автор [hypero](https://ru.wordpress.org/support/users/hypero/)
 * (@hypero)
 * [6 лет назад](https://ru.wordpress.org/support/topic/%d0%b2%d1%8b%d0%b2%d0%b5%d1%81%d1%82%d0%b8-%d0%ba%d0%bb%d0%b0%d1%81%d1%81-%d0%b2-%d0%b7%d0%b0%d0%b2%d0%b8%d1%81%d0%b8%d0%bc%d0%be%d1%81%d1%82%d0%b8-%d0%be%d1%82-%d0%ba%d0%b0%d1%82%d0%b5%d0%b3%d0%be/#post-12195830)
 * Вы можете примерно набросать код как сделать через get_the_terms например?
 *  Автор [hypero](https://ru.wordpress.org/support/users/hypero/)
 * (@hypero)
 * [6 лет назад](https://ru.wordpress.org/support/topic/%d0%b2%d1%8b%d0%b2%d0%b5%d1%81%d1%82%d0%b8-%d0%ba%d0%bb%d0%b0%d1%81%d1%81-%d0%b2-%d0%b7%d0%b0%d0%b2%d0%b8%d1%81%d0%b8%d0%bc%d0%be%d1%81%d1%82%d0%b8-%d0%be%d1%82-%d0%ba%d0%b0%d1%82%d0%b5%d0%b3%d0%be/#post-12195831)
 * Получаю все элементы:
 *     ```
       $terms = get_terms( array(
       	'taxonomy' => 'product_cat',
       	'hierarchical'  => true,
       	'hide_empty'	=> false,
       ));
       ```
   
 * Как теперь сделать условие на проверку в какой категории находимся?
 *  Автор [hypero](https://ru.wordpress.org/support/users/hypero/)
 * (@hypero)
 * [6 лет назад](https://ru.wordpress.org/support/topic/%d0%b2%d1%8b%d0%b2%d0%b5%d1%81%d1%82%d0%b8-%d0%ba%d0%bb%d0%b0%d1%81%d1%81-%d0%b2-%d0%b7%d0%b0%d0%b2%d0%b8%d1%81%d0%b8%d0%bc%d0%be%d1%81%d1%82%d0%b8-%d0%be%d1%82-%d0%ba%d0%b0%d1%82%d0%b5%d0%b3%d0%be/#post-12195832)
 *     ```
       $queried_object = get_queried_object();
   
       	$service_terms= get_terms( array(
       	    'taxonomy' => 'product_cat',
       	    'parent'	=> $queried_object->term_id,
       	    'hide_empty'	=> false,
   
   
       	) );
       	?>
       	<?php if($service_terms) : ?>
       	   <?php foreach($service_terms as $term) : ?>
       	        <?php $has_parent = $term->parent; ?>
       	        <?php if ($has_parent == 'dairy'): ?>
       	           <div><?php echo '1'; ?></div>
       	        <?php endif ?>
       	   <?php endforeach ?>
       	<?php endif;
       ```
   
 * Я не знаю уже в какую сторону копать, как правильно сделать?
 *  [Vova Druzhaev](https://ru.wordpress.org/support/users/otshelnik-fm/)
 * (@otshelnik-fm)
 * [6 лет назад](https://ru.wordpress.org/support/topic/%d0%b2%d1%8b%d0%b2%d0%b5%d1%81%d1%82%d0%b8-%d0%ba%d0%bb%d0%b0%d1%81%d1%81-%d0%b2-%d0%b7%d0%b0%d0%b2%d0%b8%d1%81%d0%b8%d0%bc%d0%be%d1%81%d1%82%d0%b8-%d0%be%d1%82-%d0%ba%d0%b0%d1%82%d0%b5%d0%b3%d0%be/#post-12195833)
 * Используй `cat_is_ancestor_of`
    и так как ты делаешь — так класс не добавляют.
   Используй хук-фильтр `body_class` для добавления класса. А от тега body уже зацепишься—
   т.к. это самый верхний уровень и по кодексу вордпресс, а не костылями.
    -  Ответ изменён 6 лет назад пользователем [Vova Druzhaev](https://ru.wordpress.org/support/users/otshelnik-fm/).
 *  Автор [hypero](https://ru.wordpress.org/support/users/hypero/)
 * (@hypero)
 * [6 лет назад](https://ru.wordpress.org/support/topic/%d0%b2%d1%8b%d0%b2%d0%b5%d1%81%d1%82%d0%b8-%d0%ba%d0%bb%d0%b0%d1%81%d1%81-%d0%b2-%d0%b7%d0%b0%d0%b2%d0%b8%d1%81%d0%b8%d0%bc%d0%be%d1%81%d1%82%d0%b8-%d0%be%d1%82-%d0%ba%d0%b0%d1%82%d0%b5%d0%b3%d0%be/#post-12195838)
 * body_class не поможет.
    Если например у родительской категории класс term-dairy,
   то при переходе в ее дочернюю категорию этот класс пропадает. Поэтому я хочу 
   в зависимости от категории добавлять к шапке классы.
 *  [tuxfighter](https://ru.wordpress.org/support/users/tuxfighter/)
 * (@tuxfighter)
 * [6 лет назад](https://ru.wordpress.org/support/topic/%d0%b2%d1%8b%d0%b2%d0%b5%d1%81%d1%82%d0%b8-%d0%ba%d0%bb%d0%b0%d1%81%d1%81-%d0%b2-%d0%b7%d0%b0%d0%b2%d0%b8%d1%81%d0%b8%d0%bc%d0%be%d1%81%d1%82%d0%b8-%d0%be%d1%82-%d0%ba%d0%b0%d1%82%d0%b5%d0%b3%d0%be/#post-12195839)
 * Можете дать ссылку на сайт с проблемой?
 *  [ipsoltl](https://ru.wordpress.org/support/users/ipsoltl/)
 * (@ipsoltl)
 * [6 лет назад](https://ru.wordpress.org/support/topic/%d0%b2%d1%8b%d0%b2%d0%b5%d1%81%d1%82%d0%b8-%d0%ba%d0%bb%d0%b0%d1%81%d1%81-%d0%b2-%d0%b7%d0%b0%d0%b2%d0%b8%d1%81%d0%b8%d0%bc%d0%be%d1%81%d1%82%d0%b8-%d0%be%d1%82-%d0%ba%d0%b0%d1%82%d0%b5%d0%b3%d0%be/#post-12195843)
 * Ну раз так не прокатывает то можно через is_object_in_term вот так:
 *     ```
       $is_ex = is_object_in_term( $post->ID, 'dairy' );
       if ( $is_ex )
       	echo 'Ваш товар из рубрики "Молочные продукты"';
       ```
   
 * .
 *  [ipsoltl](https://ru.wordpress.org/support/users/ipsoltl/)
 * (@ipsoltl)
 * [6 лет назад](https://ru.wordpress.org/support/topic/%d0%b2%d1%8b%d0%b2%d0%b5%d1%81%d1%82%d0%b8-%d0%ba%d0%bb%d0%b0%d1%81%d1%81-%d0%b2-%d0%b7%d0%b0%d0%b2%d0%b8%d1%81%d0%b8%d0%bc%d0%be%d1%81%d1%82%d0%b8-%d0%be%d1%82-%d0%ba%d0%b0%d1%82%d0%b5%d0%b3%d0%be/#post-12195847)
 * Sorry но похоже is_object_in_term не подойдет.
 *  Автор [hypero](https://ru.wordpress.org/support/users/hypero/)
 * (@hypero)
 * [6 лет назад](https://ru.wordpress.org/support/topic/%d0%b2%d1%8b%d0%b2%d0%b5%d1%81%d1%82%d0%b8-%d0%ba%d0%bb%d0%b0%d1%81%d1%81-%d0%b2-%d0%b7%d0%b0%d0%b2%d0%b8%d1%81%d0%b8%d0%bc%d0%be%d1%81%d1%82%d0%b8-%d0%be%d1%82-%d0%ba%d0%b0%d1%82%d0%b5%d0%b3%d0%be/#post-12195874)
 * Добавил post_class() для header, не лучшее решение, но чтобы повесить классы 
   для шапки подойдет. Теперь надо выводить разные лого в зависимости от главной
   категории и ее дочерних категорий, всего 3 главных категории.
 *  [tuxfighter](https://ru.wordpress.org/support/users/tuxfighter/)
 * (@tuxfighter)
 * [6 лет назад](https://ru.wordpress.org/support/topic/%d0%b2%d1%8b%d0%b2%d0%b5%d1%81%d1%82%d0%b8-%d0%ba%d0%bb%d0%b0%d1%81%d1%81-%d0%b2-%d0%b7%d0%b0%d0%b2%d0%b8%d1%81%d0%b8%d0%bc%d0%be%d1%81%d1%82%d0%b8-%d0%be%d1%82-%d0%ba%d0%b0%d1%82%d0%b5%d0%b3%d0%be/#post-12195893)
 * > Надеюсь на любой ответ.
 * Может вы расскажете что вы в итоге хотите получить? Не ваше виденье путей решения,
   а то, к чему вы стремитесь.
    Ну и может все-таки соизволите пациента показать…..
 *  Автор [hypero](https://ru.wordpress.org/support/users/hypero/)
 * (@hypero)
 * [6 лет назад](https://ru.wordpress.org/support/topic/%d0%b2%d1%8b%d0%b2%d0%b5%d1%81%d1%82%d0%b8-%d0%ba%d0%bb%d0%b0%d1%81%d1%81-%d0%b2-%d0%b7%d0%b0%d0%b2%d0%b8%d1%81%d0%b8%d0%bc%d0%be%d1%81%d1%82%d0%b8-%d0%be%d1%82-%d0%ba%d0%b0%d1%82%d0%b5%d0%b3%d0%be/#post-12195918)
 * В зависимости от категории woocommerce где мы находимся должен меняться логотип.
   
   product_is_category выполняется если находимся на родительской категории, а нужно
   чтобы условие проверяло родительскую категорию и ее дочерние. Ссылка на пациента
   pharma.in.ua
    -  Ответ изменён 6 лет назад пользователем [hypero](https://ru.wordpress.org/support/users/hypero/).
    -  Ответ изменён 6 лет назад пользователем [hypero](https://ru.wordpress.org/support/users/hypero/).

Просмотр 14 ответов — с 1 по 14 (всего 14)

 Тема «Вывести класс в зависимости от категории» закрыта для новых ответов.

 * Форум: [Проблемы и решения](https://ru.wordpress.org/support/forum/how-to-and-troubleshooting/)
 * 14 ответов
 * 4 участника
 * Последний ответ: [hypero](https://ru.wordpress.org/support/users/hypero/)
 * Последняя активность: [6 лет назад](https://ru.wordpress.org/support/topic/%d0%b2%d1%8b%d0%b2%d0%b5%d1%81%d1%82%d0%b8-%d0%ba%d0%bb%d0%b0%d1%81%d1%81-%d0%b2-%d0%b7%d0%b0%d0%b2%d0%b8%d1%81%d0%b8%d0%bc%d0%be%d1%81%d1%82%d0%b8-%d0%be%d1%82-%d0%ba%d0%b0%d1%82%d0%b5%d0%b3%d0%be/#post-12195918)
 * Статус: нерешённая

## Темы

### Самые популярные темы

### Темы без ответов

### Без вопроса

### Решённые

### Нерешённые

### Все темы
