WordPress 函数 the_category 没有提供 exclude 参数。这个可以
function exclude_post_categories($excl='', $spacer=' ') {
$categories = get_the_category(get_the_ID());
if (!empty($categories)) {
$exclude = $excl;
$exclude = explode(",", $exclude);
$thecount = count(get_the_category()) - count($exclude);
foreach ($categories as $cat) {
$html = '';
if (!in_array($cat->cat_ID, $exclude)) {
$html .= '<a href="' . get_category_link($cat->cat_ID) . '" ';
$html .= 'title="' . $cat->cat_name . '">' . $cat->cat_name . '</a>';
if ($thecount > 0) {
$html .= $spacer;
}
$thecount--;
echo $html;
}
}
}
}
另外,只要你拥有了它,你就可以根据需要更改输出,这很好。
用法如下
<?php exclude_post_categories("4"); ?>
这将列出所有类别,但 ID 为 4 的类别除外。
嗨!
我使用一个非常相似的函数。
大致如下…
替换 > 和 < 以及引号稍微弄乱了函数,但你明白意思。
我认为它使用了一种稍微简单的方法来添加分隔符,并且还允许指定另一篇文章的 ID。
也许它会很有用…
也许不会 :)
此脚本存在问题。假设我在网站上拥有 100 个类别……并且我使用上述函数排除了 50 个类别。如果文章中只有 5 个类别会发生什么情况?
那么,计数将是 5-50 = -45。这会弄乱“分隔符”。
谢谢!
你也可以使用
the_category
过滤器或get_the_categories
过滤器,如下所示如果你不希望在最后一个项目之后出现逗号,那么请使用
if ($thecount > 1) {
而不是
if ($thecount > 0) {
感谢这个很棒的教程。它对我的帮助很大。我还想知道如何创建嵌套(多级)类别。我找到了这个教程,但不确定这是否是最好的方法
https://www.templatemonster.com/help/how-to-create-nested-multi-level-categories.html
你的看法如何?