web-dev-qa-db-fra.com

Comment obtenir le terme de taxonomie de la page en cours et renseigner les requêtes dans le modèle

Je suis tombé sur l'idée d'essayer de trouver un terme de taxonomie spécifique pour la page en cours afin de pouvoir ensuite renseigner des requêtes sur la page pour d'autres types d'article qui partagent le même terme.

Fondamentalement:

  • La page 1 contient un terme de taxonomie - politique d'éducation
  • page.php a quatre parties:
    1. boucle standard qui sort la page, mais a ensuite trois requêtes suivantes
    2. boucle pour les événements comportant un terme de taxonomie - politique éducative
    3. boucle pour les rapports comportant un terme de taxonomie - politique d'éducation
    4. boucle pour les personnes ayant un terme de taxonomie - politique d'éducation

J'ai utilisé des modèles de page spécifiques pour lesquels je pouvais simplement coder le terme en boucle supplémentaire, mais je dois trouver un moyen de le faire de manière dynamique (ce qui devait initialement être quatre ou cinq pages équivaut maintenant à quarante ou cinquante).

J'ai trouvé quelques questions similaires, mais aucune que je puisse vraiment trouver dans la mise en œuvre.

Obtenez la taxonomie de la page actuelle qui était un peu déroutant à suivre en termes de ce qui était demandé.

Obtient le terme id appartenant à la taxonomie personnalisée sur une page de modèle personnalisée à post-type-type.php

J'espère que cela a du sens et merci beaucoup.

14
Christopher

Hm, si vous avez correctement enregistré une taxonomie pour le type d'objet "page", puis affecté un terme de cette taxonomie à une page ... Je pense que vous pouvez alors accéder à la taxonomie et aux termes "slug" de la manière suivante:

get_query_var( 'taxonomy' )
get_query_var( 'term' )

Si vous print_r($wp_query), tous les paramètres présents lors de la génération de la page en cours sont affichés. Avec le code ci-dessus, vous accédez à ces paramètres à partir de $wp_query.

Ensuite, pour obtenir le terme objet avec les informations complètes, vous pouvez utiliser get_term_by function, comme ça

$term = get_term_by( 'slug', get_query_var('term'), get_query_var('taxonomy') );
echo $term->name;

Cela affichera le nom "Nice" du terme.

Je crois que si vous utilisez get_query_var('term') ou $term->slug (après avoir obtenu le terme objet), vous pouvez utiliser ce slug dans toutes les autres requêtes.

J'espère que cela pourra aider. Je n'ai jamais utilisé la taxonomie pour les pages. Faites-moi savoir comment vous vous en sortez.

23
dashaluna

Il suffit de copier coller ci-dessous le code

Ceci imprimera le nom et la description de votre taxonomie de page actuelle (facultatif)

<?php 
   $tax = $wp_query->get_queried_object();
   echo ''. $tax->name . '';
   echo "<br>";
   echo ''. $tax->description .''; 
?>
2
Varsha Dhadge