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


16

J'ai essayé de trouver comment obtenir un terme de taxonomie spécifique de la page actuelle afin de pouvoir ensuite remplir des requêtes sur la page pour d'autres types de messages partageant le même terme.

Fondamentalement:

  • Page 1 a un terme taxonomique - politique d'éducation
  • page.php comprend quatre parties:
    1. boucle standard qui génère la page, mais a ensuite trois requêtes suivantes
    2. boucle pour les événements qui ont un terme de taxonomie - politique d'éducation
    3. boucle pour les rapports qui ont un terme taxonomique - politique d'éducation
    4. boucle pour les personnes qui ont un terme de taxonomie - politique d'éducation

J'ai créé des modèles spécifiques aux pages où je pouvais simplement coder en dur le terme dans les boucles supplémentaires, mais j'ai besoin de comprendre comment le faire dynamiquement (ce qui était initialement censé être quatre ou cinq pages est maintenant de quarante ou cinquante).

J'ai trouvé quelques questions similaires, mais aucune que j'ai vraiment pu trouver dans l'implémentation.

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

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

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

Réponses:


25

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

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

Si vous print_r($wp_query)vous verrez tous les paramètres qui sont là lors de la génération d'une page actuelle qui est affichée. Avec le code ci-dessus, vous accédez à ces paramètres à partir de $wp_query.

Ensuite, pour obtenir le terme objet avec des informations complètes, vous pouvez utiliser la fonction get_term_by , comme si

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

Cela imprimera le "joli" nom 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é de taxonomie pour les pages. Dites-moi comment vous allez.


2

Copiez simplement collez sous le code

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

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

-2

Il se peut que vous deviez activer la recherche pour activer la pagination

Lors de la déclaration de la taxonomie personnalisée, vous devez désactiver l'exclusion de la recherche.

exclude_from_search => false

Cela a résolu mon problème.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.