web-dev-qa-db-fra.com

tax_query renvoyant tous les messages au lieu de messages sélectifs dans WP_Query

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.

1
iSaumya

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
    )
)
1
nmr