在使用PbootCMS的过程中,有网友提出了一个问题:如何通过tags循环显示每个tag标签的数量?经过查阅官方手册,我们发现PbootCMS的tags标签循环默认并不支持单个tag的数量调用。因此,我们需要对系统进行二次开发以实现这一功能。以下是具体的操作步骤。
教程步骤
首先,需要打开并修改以下文件:/apps/home/controller/ParserController.php
1、找到两处包含以下代码的位置,并在其下方添加新代码:
$tags = implode(',', $rs); // 把栏目tags串起来
添加后代码如下:
$tags = implode(',', $rs); // 把栏目tags串起来
$tagsArrSum = array_count_values(explode(',', $tags)); // @mk-tags_one_sum 把所有tags组成数组并计算每个值得数量

2、接下来,找到以下代码位置,在其下方添加新的判断逻辑:
case 'text':
$one_html = str_replace($matches2[0][$j], $this->adjustLabelData($params, $value['tags']), $one_html);
break;
添加后代码如下:
case 'text':
$one_html = str_replace($matches2[0][$j], $this->adjustLabelData($params, $value['tags']), $one_html);
break;
case 'sum':
$sum = $tagsArrSum[$value['tags']]; // @mk-tags_one_sum
$one_html = str_replace($matches2[0][$j], $sum, $one_html);
break;

3、完成上述修改后,前台就可以读取到一个名为sum的标签。以下是具体的使用方法:
{pboot:tags scode=6 target=tag}
[tags:text]
([tags:sum])
{/pboot:tags}
效果截图:

至此,我们已经成功实现了通过tags循环显示每个tag标签数量的功能。然而,你可能会注意到一个问题:当后台文章状态选择为关闭时,相关的tag标签仍然会被调用出来,导致右侧显示1个的时候点击进去却无数据。为了解决这个问题,可以参考其他文档中的操作,增加文章状态的判断逻辑。