dedecms {dede:tag}只调用大于指定条数的标签

恩,最近真的是很倒霉,刚买股票就跌,刚开启了网站tag,结果百度出针对tag标签的算法了,而且是同一天,我有这么倒霉吗。

我27日开启了关闭了7年之久的tag聚合,结果就在这天百度发布了劲风算法,虽然很明显我没有估计去做这个事情,但是第四条肯定会命中我,就是4、空短、无有效信息、失效的聚合页。因为有些新增的tag标签一般就1篇文章,典型的空短哦。

这个时候,想我放弃tag真的是非常的不甘心的,那咋办呢,唯一的办法就是将这类文章数量太少的tag暂时不调用出来,等集齐以后再放出来,这么就比较完美了,那是否可以实现呢。

由于我的技术也不是很强,只能尽量尝试,通过sql调用应该是可以的,但是我刚做了伪静态,会比较麻烦,只能考虑通过修改{dede:tag}标签函数的方法来试试。

{dede:tag}便签函数文件在\include\taglib\tag.lib.php,修改第77行

$dsql->SetQuery("SELECT * FROM `#@__tagindex` $addsql  ORDER BY $orderby LIMIT 0,$num");

改成

$dsql->SetQuery("SELECT * FROM `#@__tagindex` $addsql where total>7 ORDER BY $orderby LIMIT 0,$num");

增加了where total>7 这个条件,就是大于7篇文章的tag才调用出来,经过测试

{dede:tag row='30' sort='new' getall='1'}
<a href='[field:link/]' class='tagc[field:highlight /]' target="_blank">[field:tag /]</a>
{/dede:tag}

可以成功

但是{dede:tag row='30' sort='new' getall='0'}不成功,也就是内容页调用当前标签不行,不仅1篇的没有,大于7的也没有

本身是技术菜鸟,不知道具体改哪里呢,算球了

内容页调用两个随机的算了。

{dede:tag row='2' sort='rand' getall='1'}
<a href='[field:link/]' class='tagc[field:highlight /]' target="_blank">[field:tag /]</a>
{/dede:tag}