每个自定义分类术语的自定义POST类型归档模板

时间:2015-01-16 作者:gfaw

我想列出所有贴子,并为自定义贴子类型的自定义分类术语列出相应的模板。为了便于理解:

自定义post类型称为PUBLICATIONS,并具有一个称为List的自定义分类法。每个列表模板略有不同,因此当所有帖子都列在存档出版物页面上时,术语列表A中的帖子应使用模板A、列表B模板B等进行显示。

我试过这个:

<?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\' );
    }
} ?>
这不管用。然后我碰到了过滤器single_template, template_redirecttemplate_include 但我真的不知道该怎么处理它们。

2 个回复
SO网友:gfaw

I solved it.

解决方案:

<?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\' ); 
}
?>
此帖子:http://wpquestions.com/question/show/id/2038 在这个过程中有很大帮助。

SO网友:Lemon Kazi

在post循环中。使用此代码。

<?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. ?>
然后创建内容发布。php用于post类型页面结构。

结束

相关推荐

1 post, 2 templates

我想能够呈现两种不同的风格(2个模板)后。例如,假设我有post ID 133,我希望有两个url来访问它,因此它会呈现不同模板应用的位置。洛雷姆。com/render1/133。com/render2/1333,例如。。。或者可能是这样的:洛雷姆。com/post/133和lorem。com/post/133?模板=2您将如何操作?