web-dev-qa-db-fra.com

modèle d'archive de type publication personnalisé par terme de taxonomie personnalisé

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.

1
gfaw

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.

1
gfaw

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.

0
Lemon Kazi