it-swarm.com.de

Benutzerdefinierten Beitragstyp in hierarchischer Reihenfolge mit get_terms anzeigen

Wie kann ich einen benutzerdefinierten Beitragstyp von Produkten mit einer benutzerdefinierten Taxonomie (Produktkategorie) in einer Liste in hierarchischer Reihenfolge anzeigen?

Ich möchte sie in dieser Reihenfolge erhalten:

h3.parentcategory 1
  -h4.childcategory 1
    -li.product of childcategory 1
    -li.product of childcategory 1
  -h4.childcategory 2
    -li.product of childcategory 2
    -li.product of childcategory 2

h3.parentcategory 2
  -h4.childcategory 1 of parent 2

Leider kann ich mich nicht um die zweite Ebene (Kinderkategorie 1 & 2) wickeln. Ich verwende diesen Code, um Kategorie und Produkt anzuzeigen:

$custom_terms = get_terms( 'productcategory' );
foreach ( $custom_terms as $custom_term ) {
    wp_reset_query();
    $args = array(  
        'post_type' => 'product',
        'tax_query' => array(
            array(
                'taxonomy' => 'productcategories',
                'field'    => 'slug',
                'terms'    => $custom_term->slug,
                'orderby'  => 'term_group',
            ),
        ),
    );
    $loop = new WP_Query( $args );
    if ( $loop->have_posts() ) {
        echo '<h3>' . $custom_term->name . '</h2>';
        while ( $loop->have_posts() ) : $loop->the_post();
            get_the_title();
        endwhile;
    }
}

Ich brauche Hilfe beim Herausfinden der verschachtelten Ebenen dieser Liste.

Ich bearbeite dies, um zu klären: Vielen Dank für die Hilfe. und entschuldige, dass du ein Noob beim Posten bist ...

Ich versuche, Produkte aufzulisten, die Teil einer Unterkategorie sind. Diese Unterkategorien können dann Teil einer großen Familie sein (Hauptkategorie). Ich versuche Unterkategorien unter einer Hauptkategorie zu gruppieren.

vegetables (Main)
  -tomatoes (sub)
     -red tomatoe sweet (product)
     -pink tomatoe sour (product)
  -cucumber (sub)
     -some kind of cucumber(product)

fruits (Main)
  -Apple(sub)
     -sweet Apple (product)
     -Golden delicious (product)
1
tarpier

Versuchen Sie so etwas:

<?php
$parent_terms = get_terms(
    'name_of_your_taxonomy',
    array(
        'parent' => 0, 
        )
);

foreach( $parent_terms as $parent_term ) {

    $child_terms = get_terms(
        'name_of_your_taxonomy'
        array(
            'child_of' => $parent_term->term_id,
            )
    );

    foreach( $child_terms as $child_term ) {

        $args = array(
            'post_type' => 'product',
            'tax_query' => array(
                array(
                    'taxonomy'      => 'name_of_your_taxonomy',
                    'field'         => 'slug',
                    'terms'         => $child_term->slug,
                ),
            ),
        );

        $loop = new WP_Query($args);

        if( $loop->have_posts() ) :

            while ( $loop->have_posts() ) : $loop->the_post();

                echo '<h3>' . $parent_term->name . '</h3>';
                echo '<h4>' . $parent_term->name . '</h4>';
                echo get_the_title();

            endwhile;

        endif;

    }

}

wp_reset_query();

Im Wesentlichen machen Sie Folgendes:

  1. Alle übergeordneten Begriffe abrufen;
  2. Durchlaufen der Elternbegriffe und Abrufen der Kinder jedes Begriffs;
  3. Durchlaufen Sie die Begriffe des Kindes und erhalten Sie Beiträge, die dem Kind zugeordnet sind.
2
darrinb