Pregunta:
Estoy trabajando en una página de miembros donde uso un tipo de publicación personalizada con una taxonomía personalizada. Mi tipo de publicación personalizada se llama member
y mi taxonomía personalizada se llama member_groups
.
Quiero enumerar a todos los miembros, pero agruparlos en sus respectivos grupos.
Para ser claros, tengo 35 miembros divididos en 9 grupos, por lo que, en lugar de hacer la misma consulta nueve veces, quiero hacerlo una vez, pero agruparlos, de modo que Member1, Member4 y Member 11 se agrupen en un grupo, llamado "Marketing".
Estoy usando WP_Query
para recuperar todas las publicaciones en el miembro de tipo de publicación. He intentado varios intentos pero sin resultado satisfactorio.
¿Cómo puedo lograrlo?
Respuesta:
Por lo tanto, podría considerar automatizar las múltiples consultas.
Primero, obtenga la lista de términos en su taxonomía personalizada, usando get_terms()
:
<?php
$member_group_terms = get_terms( 'member_group' );
?>
Luego, recorra cada uno de ellos, ejecutando una nueva consulta cada vez:
<?php
foreach ( $member_group_terms as $member_group_term ) {
$member_group_query = new WP_Query( array(
'post_type' => 'member',
'tax_query' => array(
array(
'taxonomy' => 'member_group',
'field' => 'slug',
'terms' => array( $member_group_term->slug ),
'operator' => 'IN'
)
)
) );
?>
<h2><?php echo $member_group_term->name; ?></h2>
<ul>
<?php
if ( $member_group_query->have_posts() ) : while ( $member_group_query->have_posts() ) : $member_group_query->the_post(); ?>
<li><?php echo the_title(); ?></li>
<?php endwhile; endif; ?>
</ul>
<?php
// Reset things, for good measure
$member_group_query = null;
wp_reset_postdata();
}
?>
No veo nada particularmente malo en este enfoque, aunque puede tener una capacidad limitada para escalar (es decir, si tiene cientos o miles de miembros, o términos de member_group, es posible que vea problemas de rendimiento).