Mon thème WordPress a une taxonomie personnalisée appelée "Collections". La taxonomie personnalisée est hiérarchique, il existe donc des sous-collections. J'ai une Collection appelée "Livres" et une sous-collection appelée "Romans". Il y a quelques articles qui sont juste dans "Livres", et certains messages qui sont dans "Romans". Je souhaite que la page de la collection "Livres" affiche uniquement les articles de la collection "Livres" principale, pas ceux de la sous-collection "Romans". Mais par défaut, WordPress inclut des messages dans "subcollections" dans la requête pour une taxonomie. Comment puis-je exclure des publications dans des termes enfants de ma requête de taxonomie? C'est facile avec les catégories, mais il semble qu'il n'y a pas de façon intégrée de le faire avec des taxonomies personnalisées.Wordpress: Comment puis-je exclure des publications dans des taxonomies enfants à partir d'une requête de taxonomie personnalisée?
Mise à jour: solution de Jan a parfaitement fonctionné. Voici le code je, placé au-dessus de la boucle dans index.php:
// if is taxonomy query for 'collections' taxonomy, modify query so only posts in that collection (not posts in subcollections) are shown.
if (is_tax()) {
if (get_query_var('collection')) {
$taxonomy_term_id = $wp_query->queried_object_id;
$taxonomy = 'collection';
$unwanted_children = get_term_children($taxonomy_term_id, $taxonomy);
$unwanted_post_ids = get_objects_in_term($unwanted_children, $taxonomy);
// merge with original query to preserve pagination, etc.
query_posts(array_merge(array('post__not_in' => $unwanted_post_ids), $wp_query->query));
}
}
Merci, cela a parfaitement fonctionné! Avec les catégories, vous pouvez utiliser le paramètre "category__in", qui n'inclut pas les publications dans les catégories enfants. Malheureusement, Wordpress n'a pas encore de paramètre équivalent pour les taxonomies personnalisées hiérarchiques. – shipshape