J'espère que quelqu'un va m'aider
J'ai un type de message personnalisé (film) avec sa taxonomie personnalisée (producteur), cette taxonomie a son termes propres, par exemple 'WarnerBros'.
Comment puis-je obtenir tous les postes de mon mandat (WarnerBros)?
J'ai ça mais ça ne marche pas encore.
$args = array(
'post_type' => 'movie',
'tax_query' => array(
array(
'taxonomy' => 'producer',
'field' => 'slug',
'terms' => 'WarnerBros',
),
),
);
$query = new WP_Query( $args );
Après avoir joué avec le code, j'ai résolu le problème et je partagerai mon code avec une personne ayant le même problème:
$ type = 'Movie'; // Nom du type de message personnalisé $ Tag = 'WarnerBros'; // Votre terme
$ args = array ( 'post_type' => $ type, 'paginé' => $ paginé, 'posts_per_page' => -1, ' orderby '=>' menu_order ', ' order '=>' ASC ', ' tax_query '=> array ( array ( ' taxonomy '= > 'Producer', // Taxonomy Name '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 ')) // Producer et WarnerBros {echo '<div id="YourID">'; echo the_title(); echo '</div>'; } endwhile;
Cette question a des réponses différentes dans cette question spécifique de Wordpress, elles peuvent être utiles:
Personnellement, j'ai utilisé cette méthode qui a bien fonctionné pour moi:
$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 ));
}
En l’ajustant à votre scénario, cela devrait fonctionner:
$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 ));
}
Maintenant, vous pouvez obtenir vos messages:
print_r($posts["WarnerBros"]);
Supposons que vous avez un type de message personnalisé plays et sous la taxonomie genre vous souhaitez trouver tous les messages de la catégorie comédie
$args = array(
'post_type' => 'plays', /*Post type (plays)*/
'tax_query' => array(
array(
'taxonomy' => 'genre', /*Taxonomy to search (genre)*/
'field' => 'slug',
'terms' => 'comedy', /*Search category for (comedy)*/
),
),
);
$query = new WP_Query( $args );
Essayez comme ça
$args = array(
'post_type' => 'movie',
'tax_query' => array(
array(
'taxonomy' => 'producer',
'field' => 'slug',
'terms' => 'WarnerBros',
),
),
);
$query = new WP_Query( $args );
Voir plus sur wordpress codex