做站11年,见过太多站长在友情链接这块栽跟头。不是链接太少,而是链接太乱。

打开后台一看,几百个友链全堆在一起,毫无章法。

用户一看就晕,搜索引擎也抓不到重点。

这时候你就得问自己,dede怎么做友情链接的分类调用?

很多新手朋友,直接去改数据库,或者硬写SQL语句。

结果网站直接报错,甚至打不开,心态崩了。

其实,织梦本身就有这个功能,只是很多人没发现。

官方默认只支持一级分类,如果你需要多级,或者更灵活的控制,就得动点脑筋。

先说最简单的,官方自带的分类功能。

在后台,点击“模块”->“友情链接”,这里有个“分类管理”。

你可以新建几个分类,比如“合作伙伴”、“媒体朋友”、“行业站点”。

然后给每个链接分配对应的分类。

调用代码也很简单,用 {dede:flink type='text' row='24' channeltype='1'}

注意看,这里有个 channeltype 参数,虽然官方文档写得含糊。

但实际测试中,配合 typeid 参数可以指定调用某个分类。

比如:{dede:flink type='text' row='24' typeid='1'}

这样就能只调用ID为1的分类下的链接。

这招虽然简单,但有个致命缺点。

如果你需要调用多个分类,或者分类层级很深,这就搞不定了。

这时候,就得用更高级点的办法。

我是这么做的,先利用织梦的自定义表单或者扩展字段。

不过,最稳妥的还是直接修改模板文件。

找到 include/taglib/flink.lib.php 这个文件。

别怕,不用改核心逻辑,只是加个判断。

在SQL查询语句后面,加上 WHERE typeid = '$typeid'

当然,前提是你在后台给链接加了typeid字段。

如果你用的是较新版本的DEDECMS,这个字段默认是存在的。

但如果是老版本,可能得去数据库加个字段。

这一步有点风险,建议先备份数据库。

备份!备份!备份!重要的事情说三遍。

我见过太多人没备份,改完代码网站白屏,哭都来不及。

除了改代码,还有一种偷懒的办法。

用JS动态加载。

把不同分类的链接放在不同的HTML文件里。

然后通过JS根据URL参数或者点击事件,加载不同的文件。

这种方法对SEO稍微有点影响,因为爬虫可能抓不到JS生成的内容。

但如果是为了用户体验,让页面看起来整洁,这招很管用。

比如,把“技术类”友链放在 tech.html,“媒体类”放在 media.html

前端调用时,用