获取术语的父项

Get parent of term

我可能在 Timber Docs 中错过了它,但是是否有可能获得给定分类法的父术语?

两种方法取决于 Twig 与 PHP 以及您想要做什么。

考虑一个 post,它被指定为 "Politics" 类别(它是 "News" 的子类别)

示例 1:获取 Twig 文件中的父术语

<p>Find more posts in {{ post.category.name }} and {{ post.category.parent.name }}</p>

<!--- outputs as ...  --->
<p>Find more posts in Politics and News</p>

示例 2:从分类中获取顶级术语

$context['parent_categories'] = Timber::get_terms(array('taxonomy' => 'category', 'parent' => 0));

像这样在 Twig 中使用...

Top-level categories for my site are...

{% for term in parent_categories %}
    <li><a href="{{ term.link }}">{{ term.name }}</a></li>
{% endfor %}

<!-- Outputs as... -->
<li><a href="/category/news/">News</a></li>
<li><a href="/category/sports/">Sports</a></li>
<li><a href="/category/opinions/">Opinion</a></li>

假设您正尝试在树枝视图中使用类别的父项。这就是我在偶然发现这个 post.

时试图解决的问题

category.php中可以通过获取当前查看分类的父分类ID来获取父分类:

$category = new TimberTerm();
$context['category'] = $category;
if ($category->parent) {
    $context['parent_category'] = new TimberTerm($category->parent);
}

$category->parent对应父类的ID。如果该类别没有父级,则为 null。然后,您可以在模板中使用生成的类别。

<a class="category_{{parent_category.slug|lower}}" href="{{parent_category.link}}">
    {{parent_category.title}}
</a>