做站八年,头发掉了一把,最后发现最让人头秃的往往不是代码有多难,而是那些看似简单却总出幺蛾子的细节。今天咱们不聊那些高大上的SEO理论,就聊聊Dedecms里那个让人又爱又恨的友情链接。
很多人问我,为什么我的友情链接列表总是多出一个
咱们先说个真实案例。上个月,有个做机械配件的朋友找我,说他的网站底部友情链接那一块,明明只挂了5个站,前端却渲染出了6个
他急得不得了,说是不是被黑了?我让他把源码拷给我,一看,好家伙,典型的Dedecms标签调用问题。
Dedecms默认的友情链接调用标签是{dede:flink row='24' type='text'}[field:link /]{/dede:flink}。
注意看,这个标签本身不会自动给你包裹
- [field:link /]
{dede:flink row='24' type='text'}
{/dede:flink}
看起来没问题对吧?但是,如果数据库里某个友情链接的状态是“未审核”或者“隐藏”,Dedecms有时候会返回空值,或者在某些特定版本下,循环逻辑会出现微小的偏差,导致多出一个空的
更坑的是,如果你用了type='image',那结构完全不一样,容易把图片标签和文字标签混在一起,导致
我的解决方案很简单,就是手动控制循环,或者用更稳健的写法。
你可以试试这个代码:
{dede:flink row='24' type='text' titlelen='24'}
[field:link function='html2text(@me)'/]
{/dede:flink}
等等,这样还是没加
但如果你非要
比如,你可以这样写:
- [field:webname /]
{dede:flink row='24' type='text'}
{/dede:flink}
这里有个小细节,很多教程里用[field:link /],这个字段其实包含了标签本身。如果你再用包裹,就会变成...
所以,一定要拆解字段。用[field:url /]、[field:title /]、[field:webname /]这三个字段自己组装链接。
这样做的另一个好处是,你可以给每个链接加上rel="nofollow"或者target="_blank",这对SEO和用户体验都好。
再说个题外话,有些站长为了SEO,拼命堆砌友情链接。我劝你适可而止。Dedecms的友情链接模块,如果链接太多,加载速度会变慢,而且容易被判定为链接农场。
我之前有个客户,挂了200个友情链接,结果被百度K了半年。后来他删到20个,只留高质量的,排名反而回升了。
所以,dedecms 友情链接 li 的写法,不仅仅是代码问题,更是SEO策略问题。
总结一下:
1. 别用[field:link /]直接输出,自己组装标签。
2. 确保每个链接都有title和href,别偷懒。
3. 控制数量,宁缺毋滥。
4. 检查数据库,定期清理失效链接。
最后,再提醒一下,Dedecms版本很多,5.7和5.6的标签行为略有不同,如果上面的代码在你那里不生效,检查一下你的数据库字段名是不是被修改过。
做站就是这样,细节决定成败。希望这篇dedecms 友情链接 li 的实战经验能帮到你。如果有其他问题,欢迎在评论区留言,我看到都会回。
(注:以上代码基于Dedecms 5.7 SP2测试,其他版本请自行调整。)