Ce que j'essaie de faire
Bonjour, sur mon site, j'ai un type de message personnalisé appelé projects
, puis j'ai créé une taxonomie personnalisée pour mon projects
type de message appelé project_catagories
. Maintenant, dans ma page d'archives de projets (où il affiche tous les projets), j'ai une section appelée parcourir par catégorie et lorsqu'un utilisateur clique sur un nom de catégorie, il est censé afficher les projets sous cette catégorie.
Maintenant, pour afficher les projets sous la catégorie cliquée, j'ai créé un fichier modèle appelé taxonomy-project_catagories.php
Qui montre chaque projet de catégorie de projet. Maintenant, dans ce fichier, j'utilise d'abord la get_term_by()
pour obtenir le term_id
De cette page comme suit:
$term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
Ensuite, je passe ce term_id
À ma WP_Query()
pour obtenir la liste des projets dans cette catégorie, comme ceci:
$args = array(
'numberposts' => -1,
'post_type' => 'projects',
'tax_query' => array (
'taxonomy' => 'project_catagories',
'field' => 'term_id',
'terms' => $term->term_id
)
);
$the_project_cat_query = new WP_Query($args);
Puis finalement je passe en revue et montre les projets.
Problème:
Maintenant, le problème est que peu importe ce que term_id
Est passé à la WP_Query()
, il affiche tous les projets sous toutes les catégories. Je sais qu'il y a beaucoup de questions similaires ici sur ce forum et le débordement de pile et je les ai toutes vérifiées mais aucune ne m'a aidé. J'ai même vérifié la documentation de WP_Quey
Et je n'arrivais toujours pas à comprendre ce qui se passait. Donc, toute aide sera vraiment utile.
Comment je l'ai testé
J'ai créé un projet sous une catégorie de projet, donc techniquement, quand sera sur cette page de catégorie de projet, alors seulement il devrait me montrer les détails du projet et pour les autres pages, il devrait s'afficher vide car il n'y a pas de catégories sous cette catégorie de projet.
II a même essayé d'entrer manuellement le term_id
, En vérifiant la valeur field
en slug
puis en entrant manuellement un slug. Dans tous les cas exactement le même résultat.
Toute réponse sera vraiment utile.
Paramètres de taxonomie
Remarque importante :
tax_query
prend un tableau d'arguments de requête fiscale tableaux (il prend un tableau de tableaux).Cette construction vous permet d'interroger plusieurs taxonomies en utilisant le paramètre de relation dans le premier tableau (externe) pour décrire la relation booléenne entre les tableaux de taxonomie.
Dans 'tax_query'
vous devez ajouter un tableau de tableaux ( voir dans Codex ):
'tax_query' => array (
array(
'taxonomy' => 'project_catagories',
'field' => 'term_id',
'terms' => $term->term_id
)
)