Recorrer taxonomías personalizadas y mostrar entradas
Si bien he podido hacer que esto funcione para las categorías normales de WordPress, no he podido lograrlo con taxonomías personalizadas.
Me gustaría recorrer cada taxonomía personalizada (categorías en mi caso) y mostrar varios posts para cada una.
Un ejemplo de la salida sería:
Categoría 1
entrada de categoría uno
entrada de categoría uno
leer más categoría uno
Categoría 2
entrada de categoría dos
entrada de categoría dos
leer más categoría dos
Por supuesto, se repetiría a través de cualquier taxonomía disponible para el tipo de post personalizado.

Pensé en proporcionar otra respuesta ya que la anterior es un poco improvisada, además agregué otra capa que obtiene todas las taxonomías para un post_type.
$post_type = 'post';
// Obtener todas las taxonomías para este tipo de publicación
$taxonomies = get_object_taxonomies( (object) array( 'post_type' => $post_type ) );
foreach( $taxonomies as $taxonomy ) :
// Obtiene cada "categoría" (término) en esta taxonomía para obtener las publicaciones respectivas
$terms = get_terms( $taxonomy );
foreach( $terms as $term ) :
$posts = new WP_Query( "taxonomy=$taxonomy&term=$term->slug&posts_per_page=2" );
if( $posts->have_posts() ): while( $posts->have_posts() ) : $posts->the_post();
//Aquí puedes colocar tu loop de consulta general
endwhile; endif;
endforeach;
endforeach;
Sería recomendable agregar cada publicación encontrada a un array $post__not_in
, para que puedas pasarlo al WP_Query
y evitar que se muestren publicaciones duplicadas.

¿Estás buscando esto?
<?php query_posts(array('post_type' => 'post type name', 'Taxonomy slug' => $term->slug ) ); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php endwhile; else: ?>
<p><?php _e('Lo sentimos, no hay publicaciones que coincidan con tus criterios.'); ?></p>
<?php endif; ?>
Cómo crear un bucle de Taxonomía Personalizada
Espero que te ayude

Copia y pega esta función en tu archivo functions.php
if ( ! function_exists( 'display_all_products_from_all_categories' ) ) {
function display_all_products_from_all_categories() {
// Obtener todas las categorías para el Custom Post Type Product
$args = array(
'post_type' => 'product',
'orderby' => 'id',
'order' => 'ASC'
);
$categories = get_categories( $args );
foreach ($categories as $category) {
?>
<div class="<?php echo $category->slug; ?>">
<!-- Obtener el título de la categoría -->
<h3 class="title"><?php echo $category->name; ?></h3>
<!-- Obtener la descripción de la categoría -->
<div class="description">
<p><?php echo category_description( get_category_by_slug($category->slug)->term_id ); ?></p>
</div>
<ul class="mhc-product-grid">
<?php
// Obtener todos los productos de cada categoría específica
$product_args = array(
'post_type' => 'product',
'orderby' => 'id',
'order' => 'ASC',
'post_status' => 'publish',
'category_name' => $category->slug //pasando el slug de la categoría actual
);
$product_list = new WP_Query ( $product_args );
?>
<?php while ( $product_list -> have_posts() ) : $product_list -> the_post(); ?>
<li class="product <?php the_field( 'product_flavor' ); ?>">
<a href="<?php the_permalink(); ?>" class="product-link">
<!-- si el post tiene una imagen, mostrarla -->
<?php if( has_post_thumbnail() ) : ?>
<?php the_post_thumbnail( 'full', array( 'class' => 'img', 'alt' => get_the_title() ) ); ?>
<?php endif; ?>
<!-- campos personalizados: product_flavor, product_description ... -->
<h3 class="title <?php the_field( 'product_flavor' ); ?>"><?php the_title(); ?></h3>
<p class="description"><?php the_field( 'product_description' ); ?></p>
</a>
</li>
<?php endwhile; wp_reset_query(); ?>
</ul>
</div>
<?php
}
}
}
Luego llámalo desde cualquier parte de tu template con:
display_all_products_from_all_categories();

Por favor revisa este ejemplo; crea tu propio loop para tu taxonomía. También puedes usar esto en un bucle foreach para utilizar todas las categorías. O debes crear tu propia consulta SQL.
<?php
$taxonomies = get_the_term_list($post->ID, 'TU_TAXONOMIA', '', '', '');
$taxonomies = explode('>', $taxonomies);
$taxonomies = $taxonomies[1];
$myq = new WP_Query('tu_taxonomia = '.$taxonomies);
if ($myq->have_posts()) : while ($myq->have_posts()) : $myq->the_post(); // el loop ?>
<?php the_title();?>
<?php the_content();?>
<?php endwhile; else:?>
<?php endif;?>
