如何在Twig/Timber Wordpress中显示与类别关联的帖子数量?

时间:2022-01-26 作者:EJ_95

我正在使用以下代码访问我的类别。

$orderby = \'name\';
$order = \'asc\';
$hide_empty = false;
$cat_args = array(
    \'orderby\'    => $orderby,
    \'order\'      => $order,
    \'hide_empty\' => $hide_empty,
    \'exclude\'    => 18,
);
$context[\'categories\'] = get_terms( \'product_cat\', $cat_args );
$total_in_term = $context[\'categories\']->count;
$context[\'TotalInTerm\'] = $total_in_term;
并尝试在类别名称后面显示每个术语后面括号中的帖子数量:

{% for cat in categories %}
      <a href="{{ site.link }}/{{ cat.slug }}">{{ cat.name }} ({{ TotalInTerm }})</a>
 {% endfor %}
我试图将其输出如下:Category Name ( { number of posts in category } )

到目前为止,我只输出了类别名称和链接,而没有输出它所持有的帖子数量。有人能帮忙吗?

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

你是在假设get_terms() 返回具有count 但事实并非如此。

从文档中:

返回(WP\\u Term[]| int[]| string[]| string | WP\\u Error)术语数组,将其计数为数字字符串,如果任何分类不存在,则返回WP\\u Error。有关更多信息,请参阅功能说明。

还有,你打电话的方式get_terms() 已弃用。应该只有一个参数,一个包含分类名称的数组。

下面是我如何更新代码的:

$orderby = \'name\';
$order = \'asc\';
$hide_empty = false;

$cat_args = array(
    \'taxonomy\'   => \'product_cat\',
    \'orderby\'    => $orderby,
    \'order\'      => $order,
    \'hide_empty\' => $hide_empty,
    \'exclude\'    => 18,
);
$context[\'categories\'] = get_terms( $cat_args );
// Gets the count in a separate call.
$cat_args[\'fields\'] = \'count\';
$total_in_term = get_terms( $cat_args );
$context[\'TotalInTerm\'] = $total_in_term;
参考文献get_terms()
  • fields parameter