Dans la base de données sur les cours de formation, institut est utilisé comme taxonomie personnalisée. Comment puis-je afficher la description de la taxonomie "institut" dans tous les postes, puisqu'un institut aura au moins 50 postes (cours) ...
Hypothèses:
institute
est la taxonomie course
est le terme course
est attribué par posteSi tel est le cas, le moyen le plus simple consiste à utiliser get_the_terms()
. Si votre taxonomie est institute
, vous pouvez effectuer les opérations suivantes:
<?php
// globalize $post
global $post;
// Get the course for the current post
$post_courses = get_the_terms( $post->ID, 'institute' );
// Assuming only one course, get the first object of the array
$post_course = $post_courses[0];
// Get the course description
$course_description = $post_course->description;
// Output the course description
echo $course_description
?>
Si mes hypothèses sont incorrectes, faites-le moi savoir dans les commentaires et je mettrai à jour la réponse.
MODIFIER
Une autre hypothèse est acceptable, mais je veux montrer "description de l’institut". Un seul cours est attribué par poste mais chaque institut contient plusieurs cours. Institut est taxonomie et nom des instituts sont utilisés en tant que catégories.
Je ne suis toujours pas tout à fait sûr de te suivre. Voulez-vous dire que institute
et course
sont des taxonomies hiérarchiques? Si c'est le cas, mes hypothèses de départ sont incorrectes. Pouvez-vous décrire plus clairement votre schéma ?
EDIT 2
Dans ce cas, je veux montrer la description de l'université d'Auckland. Alors que cette université est également utilisée dans de nombreux autres postes. Dans mon cas, chaque cours est un post.
Ok, maintenant nous allons quelque part! Il semble que course
soit un type personnalisé et que institute
soit une taxonomie personnalisée pour ce CPT. Si cela est correct, le code ci-dessus devrait fonctionner pour afficher la description du terme pour un message donné.
Voici le code que j'ai utilisé récemment pour afficher chaque terme dans la taxonomie personnalisée (appelée types de services), avec la description, puis afficher tous les types de publication personnalisés (services) situés en dessous.
J'ai ajouté une instruction if afin que, si un Service_type n'a pas de description, il ne crée pas la div pour lui (donc il n'y a pas un grand espace vide). Vous pouvez le modifier pour afficher votre taxonomie personnalisée. Cela vous aidera au moins à démarrer. J'ai également fait d'autres pages qui devaient montrer des termes spécifiques dans la taxonomie. Si vous avez besoin de plus d'informations, écrivez une description.
<?php
//get all service_types (custom taxonomy) then display all posts in each term
$taxonomy = 'service_types';
$term_args=array(
'orderby' => 'menu_order',
'order' => 'DESC'
);
$terms = get_terms($taxonomy,$term_args);
if ($terms) {
foreach( $terms as $term ) {
$args=array(
'post_type' => 'services',
'service_types' => $term->name ,
'post_status' => 'publish',
'posts_per_page' => 50,
'caller_get_posts'=> 1
);
$my_query = null;
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) { ?>
<div class="services"> <!--begin this type of service -->
<div class="description">
<h4><?php echo $term->name;?></h4>
<?php
$termDiscription = $term->description;
if($termDiscription != '') : ?>
<p><?php echo $termDiscription; ?></p>
<?php endif; ?>
</div> <!--.description -->
<?php
while ($my_query->have_posts()) : $my_query->the_post(); ?>
<!--begin this service -->
<div class="cpt service">
<h5><?php the_title(); ?></h5><!--title -->
<!--thumbnail -->
<span class="sthumb">
<a href="<?php the_permalink() ?>" title="<?php echo $term->name;?>"><?php the_post_thumbnail(); ?></a>
</span>
<!--#thumb -->
<?php the_excerpt(); ?>
</div><!--#cpt -->
<?php endwhile; ?>