Как получить Woocommerce категории продуктов верхнего уровня? - PullRequest
2 голосов
/ 02 мая 2019

Я пытаюсь получить категории продуктов верхнего уровня в домашнем шаблоне.Я использовал приведенный ниже код, но не знаю, почему он не работает.

 <?php
          global $post, $product;
    $taxonomy = 'product_cat'; //Choose the taxonomy
    $terms = get_terms( $taxonomy ); //Get all the terms

    foreach ($terms as $term) { //Cycle through terms, one at a time

    // Check and see if the term is a top-level parent. If so, display it.
    $parent = $term->parent;
     if ( $parent=='0' ) {

      $term_id = $term->term_id; //Define the term ID
      $term_link = get_term_link( $term, $taxonomy ); //Get the link to the archive page for that term
      $term_name = $term->name;
      echo '<a class="ccats" href="' . $term_link . '"><span class="label">' . $term_name . '</span></a>';
    } }
    ?>

Пожалуйста, помогите мне получить категории верхнего уровня.

Ответы [ 2 ]

2 голосов
/ 02 мая 2019

Вам нужны только следующие аргументы в функции get_terms():

$terms = get_terms( array('taxonomy' => 'product_cat', 'parent' => 0) );

foreach ( $terms as $term ){
    $term_link = get_term_link( $term, $taxonomy );

    echo '<a class="ccats" href="'.$term_link.'"><span class="label">'.$term->name.'</span></a>';
}

Вот все доступные аргументы , которые можно использовать в функции get_terms().


Для изображения категории продукта: Получить и отобразить рекомендуемое изображение категории продукта в Woocommerce

2 голосов
/ 02 мая 2019

Вы можете использовать так:

<?php
    $taxonomy = 'product_cat';
    $orderby = 'title';
    $show_count = 0; // 1 for yes, 0 for no
    $pad_counts = 0; // 1 for yes, 0 for no
    $hierarchical = 1; // 1 for yes, 0 for no
    $title = '';
    $empty = 1;
    $order = 'ASC';

    $args = array(
        'taxonomy' => $taxonomy,
        'orderby' => $orderby,
        'show_count' => $show_count,
        'pad_counts' => $pad_counts,
        'hierarchical' => $hierarchical,
        'title_li' => $title,
        'hide_empty' => $empty,
        'order' => $order,
        'parent' => 0
    );

    $terms = get_categories( $args );

    foreach ($terms as $term) { //Cycle through terms, one at a time

    // Check and see if the term is a top-level parent. If so, display it.
        if($term->category_parent == 0){

          $term_id = $term->term_id; //Define the term ID
          $term_link = get_term_link( $term, $taxonomy ); //Get the link to the archive page for that term
          $term_name = $term->name;
          echo '<a class="ccats" href="' . $term_link . '"><span class="label">' . $term_name . '</span></a>';
        } 
    }
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...