子子类别自定义模板

时间:2018-04-13 作者:Rick Alvarez

我正在尝试为子类别中的所有帖子添加自定义模板。我是说像

Category --> SubCategory Level 1 --> Subcategory Level 2 --> post
我正在使用以下代码:

 <?php
  $post = $wp_query->post;

  if (cat_is_ancestor_of( 42, $cat ) ) {
      include(TEMPLATEPATH.\'/services_template.php\');
  } else {
      include(TEMPLATEPATH.\'/single-default.php\');
  }
?>
然而,它只显示一个空白页,无论是在sub-sub-cat帖子还是所有其他帖子中。我仔细检查了一下,模板就在那里,所以我想我的代码可能有问题,但不知道是什么

编辑:我有几个名为single-{CPT-slug}.php . 这有可能影响到事情吗?

1 个回复
最合适的回答,由SO网友:lavekyl 整理而成

使用get\\u template\\u part()代替include()

https://developer.wordpress.org/reference/functions/get_template_part/

<?php $post = $wp_query->post; if (cat_is_ancestor_of( 42, $cat ) ) { get_template_part( \'services\', \'template\' ) } else { get_template_part( \'single\', \'default\' ); } ?>

如果您创建这些文件并使用get\\u template\\u part(),那么在这些文件中,您可以将其设置为以您认为合适的方式显示帖子。看看github上的下划线主题,即归档文件。php文件有一个在循环中使用get\\u template\\u part()的好例子-

https://github.com/Automattic/_s/blob/master/archive.php

这里还有一个链接,指向其中一个用于下划线的template\\u部分,以查看它们是如何在该文件中进行设置的-

https://github.com/Automattic/_s/blob/master/template-parts/content.php

Tom Mcfarlin在这里非常好地解释了这一点-

https://code.tutsplus.com/articles/how-to-include-and-require-files-and-templates-in-wordpress--wp-26419

对编辑的响应:您的单个{CPT slug}。php模板不应引起任何问题。

结束

相关推荐

Media Library Categories

我使用以下内容将类别分配给我的WordPress媒体库(在functions.php):function wptp_add_categories_to_attachments() { register_taxonomy_for_object_type( \'category\', \'attachment\' ); } add_action( \'init\' , \'wptp_add_categories_to_attachments\' ); 每个媒体库项目都