/ Сайтостроение / Wordpress / Ищем самого первого предка

Ищем самого первого предка

05.06.2016

561

Нам нужно получить самого первого предка таксономии, независимо от количества потомков и в каком месте мы пытаемся его получить.

Получаем первый родительский термин таксономии

Использовать данный код в шаблоне термина таксономии, или в виджете. Но работать он будет непосредственно при нахождении в каком-либо термине. В данном примере в таксономии — product_cat (категории woocommerce).

<?php
$term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
$tax = 'product_cat';
$top_parent_term = $child_term = $term->term_id; // ID дочернего термина

while( $temp = wp_get_term_taxonomy_parent_id( $top_parent_term, $tax ) ) {

$top_parent_term = $temp;
}

if( $top_parent_term != $child_term ) : ?>

<?php $toppartherm = get_term( $top_parent_term, $tax ); ?>

<a href="<?php echo get_tag_link($toppartherm->term_id); ?>">
<div class="podcat-line podcat-parent">

<div class="cat-image-min"><?php woocommerce_subcategory_thumbnail( $toppartherm ); ?></div>
<h2 class="podcat-line-title"><?php echo $toppartherm->name ?></h2>

</div>
</a>

<?php else: ?>

<?php endif; ?>

Получаем первый родительский термин у записи или товара

<?php
$tax = 'product_cat';
$terms = get_the_terms( $post->ID, 'product_cat' ); ?>

<?php if( $terms ) : ?>
<?php foreach ($terms as $term) : ?>

<?php
$top_parent_term = $child_term = $term->term_id; // ID дочернего термина

while( $temp = wp_get_term_taxonomy_parent_id( $top_parent_term, $tax ) ) {
 
 $top_parent_term = $temp;
}


if( $top_parent_term != $child_term ) : ?>
 
<?php $toppartherm = get_term( $top_parent_term, $tax ); ?> 
 
<a href="<?php echo get_tag_link($toppartherm->term_id); ?>">
 
<?php woocommerce_subcategory_thumbnail( $toppartherm ); ?>
 
</a>
 
<?php else: ?>

<?php $toppartherm = get_term( $top_parent_term, $tax ); ?> 
<a href="<?php echo get_tag_link($top_parent_term); ?>">
<?php woocommerce_subcategory_thumbnail( $toppartherm ); ?>
</a>

<?php endif; ?> 


 
<?php endforeach; ?>
<?php else: ?>
нет категории 
<?php endif; ?>

Поделится информацией с друзьями

  • Комментарии
  • Вложения

Добавить комментарий

Пока нет комментариев. Будь первым!

Ищем самого первого предка
Заявка на товар
Рекомендации для васЗаявка на товарOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.