Cómo obtener las entradas de un término de taxonomía personalizada
Espero que alguien pueda ayudarme:
Tengo un Tipo de Entrada Personalizada (Película) con su taxonomía personalizada (Productor), esta taxonomía tiene sus propios términos, por ejemplo 'WarnerBros'.
¿Cómo puedo obtener todas las entradas de mi término (WarnerBros)?
Tengo esto pero aún no funciona.
$args = array(
'post_type' => 'movie',
'tax_query' => array(
array(
'taxonomy' => 'producer',
'field' => 'slug',
'terms' => 'WarnerBros',
),
),
);
$query = new WP_Query( $args );
Después de jugar con el código resolví el problema, compartiré mi código para alguien con el mismo problema:
$type = 'Movie'; // Nombre del Tipo de Entrada Personalizada $tag = 'WarnerBros'; // Tu Término
$args = array( 'post_type' => $type, 'paged' => $paged, 'posts_per_page' => -1, 'orderby' => 'menu_order', 'order' => 'ASC', 'tax_query'=>array( array( 'taxonomy'=>'Producer', //Nombre de la Taxonomía 'field'=>'slug', 'terms'=>array($tag) )) );
$loop = new WP_Query( $args ); while ( $loop->have_posts() ) : $loop->the_post(); if(is_object_in_term($post->ID,'Taxonomy_Name','Your_Term')) // Productor y WarnerBros {
echo '<div id="YourID">'; echo the_title(); echo '</div>';
} endwhile;

Esta pregunta tiene diferentes respuestas en este caso específico de WordPress, que pueden ser de ayuda:
Personalmente utilicé este método que funcionó bien para mí:
$terms = get_terms('tax_name');
$posts = array();
foreach ( $terms as $term ) {
$posts[$term->name] = get_posts(array( 'posts_per_page' => -1, 'post_type' => 'post_type', 'tax_name' => $term->name ));
}
Adaptándolo a tu escenario, esto debería funcionar:
$terms = get_terms('producer');
$posts = array();
foreach ( $terms as $term ) {
$posts[$term->name] = get_posts(array( 'posts_per_page' => -1, 'post_type' => 'movie', 'tax_name' => $term->name ));
}
Ahora puedes obtener tus publicaciones:
print_r($posts["WarnerBros"]);

Prueba así
$args = array(
'post_type' => 'movie',
'tax_query' => array(
array(
'taxonomy' => 'producer',
'field' => 'slug',
'terms' => 'WarnerBros',
),
),
);
$query = new WP_Query( $args );
Ver más en WordPress Codex

Supongamos que tienes un tipo de entrada personalizado obras y bajo la taxonomía género quieres encontrar todas las entradas con la categoría comedia
$args = array(
'post_type' => 'plays', /*Tipo de entrada (obras)*/
'tax_query' => array(
array(
'taxonomy' => 'genre', /*Taxonomía a buscar (género)*/
'field' => 'slug',
'terms' => 'comedy', /*Buscar categoría para (comedia)*/
),
),
);
$query = new WP_Query( $args );
