Je souhaite répertorier toutes les publications avec un modèle correspondant pour un terme de taxonomie personnalisé d'un type de publication personnalisé. Pour faciliter la compréhension:
Le type de publication personnalisé s'appelle PUBLICATIONS et possède une taxonomie personnalisée appelée LISTS. Chaque modèle de liste est légèrement différent. Ainsi, lorsque tous les articles sont répertoriés sur la page archives-publications, les articles du terme LISTE A doivent être affichés à l'aide du modèle A, de la liste B, du modèle B, etc.
J'ai essayé ceci:
<?php
function publikationen_archive() {
if ( is_archive('publikationen') && is_tax('downloads') ) { get_template_part( 'templates/content-downloads' );
} elseif ( is_archive('publikationen') && is_tax('sonderbaende-kataloge') ) {
get_template_part( 'templates/content-sonderbaende-kataloge' );
} elseif ( is_archive('publikationen') && is_tax('neuerscheinungen') ) {
get_template_part( 'templates/content-neuerscheinungen' );
} elseif ( is_archive('publikationen') && is_tax('untersuchungen') ) {
get_template_part( 'templates/content-untersuchungen' );
} elseif ( is_archive('publikationen') && is_tax('studien-materialien') ) {
get_template_part( 'templates/content-studien-materialien' );
}
} ?>
qui n'a pas fonctionné. Puis je suis tombé sur les filtres single_template
, template_redirect
et template_include
mais je ne savais pas vraiment quoi faire avec eux.
je l'ai résolu.
SOLUTION:
<?php
if ( has_term( 'downloads', 'listen', $post->ID ) ) {
get_template_part( 'templates/content-downloads-vergriffener-baende' );
}
elseif ( has_term( 'untersuchungen', 'listen', $post->ID ) ) {
get_template_part( 'templates/content-untersuchungen' );
}
elseif ( has_term( 'studien-materialien', 'listen', $post->ID ) ) {
get_template_part( 'templates/content-studien-materialien' );
}
elseif ( has_term( 'sonderbaende-kataloge', 'listen', $post->ID ) ) {
get_template_part( 'templates/content-sonderbaende-kataloge' );
}
?>
Ce message: http://wpquestions.com/question/show/id/2038 a été grandement utile dans le processus.
dans votre boucle de publication. utilisez ce code.
<?php while (have_posts()) : the_post();
$post_type = get_post_type(get_the_ID());
if($post_type !='post'){
get_template_part('content-' . $post_type, get_post_format());
}
else {
get_template_part( 'content', get_post_format() );
}
//If comments are open or we have at least one comment, load up the comment template.
// if ( comments_open() || get_comments_number() ) {
// comments_template( '', true );
// }
//endwhile; ?>
<?php comments_template( '', true ); ?>
<?php endwhile; // end of the loop. ?>
puis créez content-publication.php pour votre structure de page de type publication.