0

今天早些时候在这里找到了一些帮助,并希望再次这样做来创建自定义模板。:-)

我在我的functions.php中设置了一个Wordpress自定义帖子类型

我有一个名为“分类”的自定义分类法

根据该分类法,我有以下术语/类别:

旧研究(父)--- 子猫 1 --- 子猫 2

我创建了文件“taxonomy-Classifications-oldresearch.php”,它成功地为我更改了布局。但是,它不包含子类别中的布局。我还可以通过创建“taxonomy-Classifications-subcat1-oldresearch.php”来更改它,但我将有很多子类别,我想使用一个模板。这样我就不必为每个新类别创建一个新的模板文件。有人对我有好的解决方案吗?

谢谢!

4

2 回答 2

0

在 Wordpress 堆栈交换上有一篇很棒的帖子,正好解决了这个问题。问题是 Wordpress 使用模板层次结构根据每个术语的 slug 加载 php 模板。

于 2013-08-28T20:39:51.167 回答
0

您可以在分类模板中进行一些自定义编码,以根据需要显示适当的子类别。例如,假设您当前的父分类是,oldresearch那么您将像 WordPress 一样被带到特定的分类模板,在您的情况下,您将被带到oldresearch模板页面。在该模板中,您可以获取id当前术语,然后可以从该类别中获取子数据。在代码中,它将如下所示: 注意:以下代码仅供参考,您可以根据需要使用它。

<?php
$term_id = 10;
$taxonomy_name = 'Classifications';
$termchildren = get_term_children( $term_id, $taxonomy_name );

echo '<ul>';
foreach ( $termchildren as $child ) {
$term = get_term_by( 'id', $child, $taxonomy_name );
echo '<li><a href="' . get_term_link( $child, $taxonomy_name ) . '">' .     $term->name . '</a></li>';
}
echo '</ul>';
?> 

通过这种方式,您可以使用您的子类别数据。$term_id仅供参考,您将获得您的 id,parent taxonomy term因此将从该术语中获得子类别。如需进一步阅读,请查看获取儿童条款 Codex

于 2016-04-29T09:31:10.690 回答