Merci pour toute aide.
Je suis dans un post personnalisé (pas une archive) avec une taxonomie. Et j'aimerais afficher:
Cela ne semble pas si difficile, mais pour moi ça ne me semble pas ... Je n'ai pas trouvé la bonne façon d'utiliser le terme de mon impôt dans la requête ...
Voici mon essai:
$ terms = wp_get_post_terms ($ post-> ID, 'identite'); // pour obtenir ma taxonomie foreach ($ terms as $ term) { echo "$ term-> slug"; // juste pour le test - ok $ args = array ( 'post_type' => 'example', 'tax_query' => array ( 'relation' => 'AND', tableau ( 'taxonomie' => 'identite', 'field' => 'ID', 'termes' => $ termes ) ), ); // argument final $ query = new WP_Query ($ args); if ($ requête-> avoir_posts ()) { tant que ($ requête-> avoir_posts ()) { $ requête-> le_post (); // Petite prière, mais cela ne fonctionne pas } // fin de la période }
J'obtiens ce message d'erreur: L'objet de la classe WP_Term n'a pas pu être converti en int dans
Une idée de convertir mon objet et de le rendre lisible? Merci beaucoup
(edit: j'essaie avec la fonction wp_list_pluck mais sans succès)
Essayez ceci pour WP_Query
$args = array(
'post_type' => 'example',
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'identite',
'field' => 'ID',
'terms' => $term->term_id
)
),
);// end args
OR
$args = array(
'post_type' => 'example',
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'identite',
'field' => 'ID',
'terms' => array($term->term_id)
)
),
);// end args
$term
est un objet et tax_query
attend un tableau d'identifiants.
Voir: https://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters
Vous obtenez ce message d'erreur en raison de la manière dont vous configurez le tableau $args
. Dans le tax_query
, vous souhaiterez passer un tableau de tous les identifiants de termes pour le message en cours. En outre, la valeur field
était incorrecte (comme indiqué dans le Codex ici: WP_Query # Taxonomy_Parameters ).
Le code final devrait ressembler à quelque chose comme:
<?php
$terms = wp_get_post_terms( $post->ID, 'identite');
$terms_ids = [];
foreach ( $terms as $term ) {
$terms_ids[] = $term->term_id;
}
$args = array(
'post_type' => 'example',
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'identite',
'field' => 'term_id',
'terms' => $terms_ids
)
),
);
$query = new WP_Query($args);
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
// All the magic here
}
}