【问题标题】:Wordpress Custom Taxonomy TemplateWordpress 自定义分类模板
【发布时间】:2013-08-28 20:28:47
【问题描述】:

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

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

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

在该分类下,我有术语/类别:

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

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

谢谢!

【问题讨论】:

    标签: wordpress


    【解决方案1】:

    有一个great post on the Wordpress stack exchange 正好解决了这个问题。问题是 Wordpress 使用template hierarchy 根据每个术语的 slug 加载 php 模板。

    【讨论】:

    • 那篇文章很有帮助,但我的困境仍然存在。我有“taxonomy-taxonomyname.php”和我的父猫模板“taxonomy-taxonomyname-parentcat.php”的适当文件。问题是当我为父类别的任何子类别加载页面时,它会恢复为“taxonomy-taxonomyname.php”而不是“taxonomy-taxonomyname-parentcat.php”。我可以为子猫创建额外的模板,但我不想这样做。我宁愿他们使用“taxonomy-taxonomyname-parentcat.php”
    【解决方案2】:

    您可以在分类模板中进行一些自定义编码,以根据需要显示适当的子类别。例如,假设您当前的父分类是 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 仅供参考,您将获得 parent taxonomy term 的 id,因此将从该术语中获得子类别。 如需进一步阅读请查看Get Children terms Codex

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-20
      • 2013-03-17
      • 1970-01-01
      • 1970-01-01
      • 2017-10-14
      相关资源
      最近更新 更多