首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取Wordpress / Timber中的当前类别插件

获取Wordpress / Timber中的当前类别插件
EN

Stack Overflow用户
提问于 2016-06-27 16:16:48
回答 3查看 17K关注 0票数 1

在我的Single.php中,我正在尝试获取当前帖子类别的slug:

代码语言:javascript
复制
$category = get_category(get_query_var('cat'));
$cat_slug = $category->slug;

但它不会返回任何内容。在帖子上肯定有一个类别。我做错了什么?

EN

回答 3

Stack Overflow用户

发布于 2016-06-28 05:56:39

你可以使用get_the_category(),但既然你用TwigTimber标记了你的问题,我想你可能会想要做“木材方式”。

使用Timber,您可以通过对象上的方法访问许多功能。对于TimberPost类,有一个terms()方法,它将为您提供一个post的所有术语。传递要获取术语的分类法的名称。在您的例子中:category

single.php

代码语言:javascript
复制
<?php

$context = Timber::get_context();
$post = Timber::get_post();

$context['post'] = $post;

// Get all categories assigned to post
$categories = $post->terms( 'category' );

// Get only the first category from the array
$context['category'] = reset( $categories );

Timber::render( 'single.twig', $context );

在低于Timber1.x的版本中,也有像category()categories()这样的方法来获取类别分类的一个或所有术语,但它们现在似乎已被弃用

single.twig

在您的Twig文件中,您可以通过

代码语言:javascript
复制
{{ category.slug }}

您还可以直接从Twig调用terms()方法,并将结果传递给for循环。这将回显出分配给帖子的所有类别。

代码语言:javascript
复制
{% for category in post.terms('category') %}
    {{ category.slug }}
{% endfor %}
票数 4
EN

Stack Overflow用户

发布于 2016-06-27 16:56:37

您可以尝试以下代码来解决您的问题:

代码语言:javascript
复制
foreach (get_the_category() as $category) {
    echo $category->slug .' ';
} 
票数 1
EN

Stack Overflow用户

发布于 2017-10-01 22:35:05

您可以使用:

代码语言:javascript
复制
$context[ 'category' ] = Timber::get_term(['taxonomy'=>'category']);

在你的twig文件中:

代码语言:javascript
复制
{{ category.title }}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38048928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档