¿Cómo obtener las categorías de productos de nivel superior de Woocommerce?

2 minutos de lectura

Estoy tratando de recuperar categorías de productos de nivel superior en la plantilla de inicio. Utilicé el siguiente código, pero no sé por qué no funciona.

 <?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="'%20.%20$term_link%20.%20'"><span class="label">' . $term_name . '</span></a>';
    } }
    ?>

Por favor, ayúdenme a obtener las categorías de nivel superior.

avatar de usuario
LoicTheAztec

Solo necesita los siguientes argumentos en get_terms() función:

$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>';
}

Aquí están todos los argumentos disponibles que se puede utilizar en get_terms() función.


Para la imagen de la categoría del producto: obtenga y muestre la imagen destacada de la categoría del producto en Woocommerce

  • ¿Es posible obtener imágenes de categoría también?

    – Praveen

    3 de mayo de 2019 a las 0:36

  • ¿Puede sugerir alguna solución para esto?

    – Praveen

    3 mayo 2019 a las 11:51

Podrías usar así:

<?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="'%20.%20$term_link%20.%20'"><span class="label">' . $term_name . '</span></a>';
        } 
    }
?>

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad