Получение родительской категории текущей категории для ссылки - PullRequest
0 голосов
/ 24 сентября 2019

В Woocommerce я пытаюсь добавить кнопку «Просмотреть все ...» в каждой категории к родителю этой категории.Я отлично работал на одной странице продукта, поэтому попытался изменить код оттуда.В настоящее время полуработает, но я изо всех сил стараюсь заставить его работать, так как он всегда тянет в 3 категориях, например

Освещение> Вспышка освещения> Комплекты вспышки даже в родительской категории Освещение.

Может кто-нибудьнаправить меня в правильном направлении?

    $product_cats = wp_get_post_terms( get_the_ID(), 'product_cat' );

if ( $product_cats && ! is_wp_error ( $product_cats ) ){
    $cat_depth = count($product_cats);
    echo $cat_depth;

    if ($cat_depth == 2)
    {$offset = 0;}
    else if ($cat_depth == 3)
    {$offset = 1;}

foreach (array_slice($product_cats,$offset) as $parent_cat){ ?>
    <h2 itemprop="name" class="product_category_title"><a href="<?php echo esc_url('/product-category/' .$parent_cat->slug ); ?>/"><span><i class="fas fa-th"></i> View all <?php echo $parent_cat->name ?></span></a></h2>
        <hr />

<?php break;}
}

1 Ответ

0 голосов
/ 24 сентября 2019

попробуйте это:

<?php
    $category = get_the_category(); 
    $category_parent_id = $category[0]->category_parent;
    if ( $category_parent_id != 0 ) {
        $category_parent = get_term( $category_parent_id, 'category' );
        $category_parent_link = get_category_link($category_parent->term_id);
    } else {
        $category_parent_link = get_category_link($category[0]->term_id);
    }

    foreach (array_slice($product_cats,$offset) as $parent_cat){

?>

       <h2 itemprop="name" class="product_category_title">
          <a href="<?= category_parent_link; ?>">
              <span>
                   <i class="fas fa-th"></i> View all 
                   <?= category_parent->name ?>
              </span>
          </a>
       </h2>
       <hr />

<?php 
     } 
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...