Comment puis-je afficher un type de publication personnalisé de produits avec une taxonomie personnalisée (catégorie de produit) dans une liste, dans un ordre hiérarchique?
J'aimerais les obtenir dans cet ordre:
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
Malheureusement, je ne parviens pas à comprendre le deuxième niveau (catégorie 1 et 2). J'utilise ce code pour afficher la catégorie et le produit:
$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;
}
}
J'ai besoin d'aide pour déterminer les niveaux imbriqués de cette liste.
J'édite ceci pour essayer de clarifier: merci pour l'aide. et désolé d'être un noob en postant ...
Ce que j'essaie de faire, c'est de lister les produits qui font partie d'une sous-catégorie, ces sous-catégories peuvent alors faire partie d'une grande famille (Maincategory). J'essaie de regrouper les sous-catégories dans une catégorie principale.
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)
Essayez quelque chose comme ça:
<?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();
Ce que vous faites est essentiellement: