我正在使用以下代码访问我的类别。
$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 } )到目前为止,我只输出了类别名称和链接,而没有输出它所持有的帖子数量。有人能帮忙吗?
最合适的回答,由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