Je travaille sur un projet dans lequel j'utilise les publications par défaut comme "Produits", la catégorie par défaut comme "Application" et une taxonomie personnalisée appelée "Groupes".
Je veux lister "Produits" par "Application" (category.php) mais les regrouper dans leurs "Groupes" respectifs:
J'ai essayé différentes tentatives mais sans résultat.
Y a-t-il un moyen facile de s'y prendre? Merci!
J'ai trouvé une solution!
<?php
// Get current Category
$get_current_cat = get_term_by('name', single_cat_title('',false), 'category');
$current_cat = $get_current_cat->term_id;
// List posts by the terms for a custom taxonomy of any post type
$post_type = 'myposttype';
$tax = 'mytaxonomy';
$tax_terms = get_terms( $tax, 'orderby=name&order=ASC');
if ($tax_terms) {
foreach ($tax_terms as $tax_term) {
$args = array(
'post_type' => $post_type,
"$tax" => $tax_term->slug,
'post_status' => 'publish',
'posts_per_page' => -1,
'category__in' => $current_cat // Only posts in current category (category.php)
);
$my_query = null;
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) : ?>
<h2><?php echo $tax_term->name; // Group name (taxonomy) ?></h2>
<?php while ( $my_query->have_posts() ) : $my_query->the_post(); ?>
<?php $term_list = wp_get_post_terms($post->ID, 'category', array("fields" => "ids")); // Get post categories IDs?>
<?php if (in_array($current_cat, $term_list) ): // Display only posts that have current category ID ?>
<h3><?php the_title(); ?></h3>
<?php endif; // if in_array ?>
<?php endwhile; // end of loop ?>
<?php endif; // if have_posts()
wp_reset_query();
} // end foreach #tax_terms
} // end if tax_terms
?>