基于类别为自定义帖子类型创建自定义单个帖子模板

时间:2013-12-07 17:00:10

标签: wordpress custom-post-type custom-taxonomy

根据自定义端口类型的自定义分类,尝试为自定义帖子类型创建多个单个自定义模板。

例如:当帖子有某个类别时,它会使用不同的模板,而不是默认的单一自定义帖子类型名称.php

这是我到目前为止所尝试的。但它似乎没有奏效。而我认为这是因为我在CPT上尝试这个。

add_filter('single_template', create_function(
'$the_template',
'foreach( (array) get_the_category() as $cat ) {
    if ( file_exists(TEMPLATEPATH . "/single-{$cat->slug}.php") )
    return TEMPLATEPATH . "/single-{$cat->slug}.php"; }
return $the_template;' )

);

1 个答案:

答案 0 :(得分:0)

在myposttype-single.php(你的帖子类型的slug)文件中的exaple循环:

while (have_posts()) : the_post();

    $category = get_the_category();
    $firstCategory = $category[0]->cat_name;

    if ( $firstCategory === 'yourcategoryname' ){
        get_template_part( 'partials/myposttype', 'specialcat' );
    } else {
        get_template_part( 'partials/myposttype', 'default' );
    }

endwhile;
  • 而不是在主题文件夹中创建名为“partials”的文件夹。
  • 在此文件夹中,您将创建两个名为“myposttype-specialcat.php”和“myposttype-default.php”的文件。像在普通模板中一样,将相同的代码添加到此文件中。标题,循环,页脚等。

如果该帖子的第一个类别名称为“yourcategoryname”,则会采用特殊模板,而不是默认模板。