iborisbelov
@iborisbelov
Веб-дизайнер, UX\UI

Как вывести term_id дочерней категории товара?

Добрый день.
Нахожусь внутри товара.
Надо вывести id текущей категории (дочерней, без родительской)

Есть код:
<?php global $product; //Если не объявлен ранее. Не уверен в необходимости.
global $post;
$categories = get_the_terms( $post->ID, 'product_cat' );
foreach ($categories as $category) {
    echo $category->term_id; //Может быть в нескольких категориях
}?>

Но он выводит и родительскую и дочернюю в которых находится товар. А надо ТОЛЬКО дочернюю.
  • Вопрос задан
  • 219 просмотров
Решения вопроса 1
deniscopro
@deniscopro Куратор тега WordPress
WordPress-разработчик, denisco.pro
Добрый день.

$product_cats = wp_get_post_terms(get_the_ID(), 'product_cat');
if ($product_cats) {
	$deepestTerm = false;
	$maxDepth = -1;

	foreach ($product_cats as $cat) {
		$termDepth = count(get_ancestors($cat->term_id, 'product_cat'));

		if ($termDepth > $maxDepth) {
			$deepestTerm = $cat;
			$maxDepth = $termDepth;
		}
	}

	echo $deepestTerm->term_id;
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
maxxannik
@maxxannik
Сайты на WordPress + Интернет магазины WooCommerce
Проверьте какие категории указаны у продукта в панели управления. Часто бывает так что указывают всю ветку дерева. Попробуйте оставить только последнюю категорию в ветке.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы