使用默认标签 + CSS (最简单、最推荐)
这是最直接的方法,不修改任何模板代码,仅通过 CSS 来调整默认的 HTML 结构,使其显示为 <li> 样式。

模板代码 (保持默认)
在你的模板文件(通常是 footer.htm)中,使用默认的友情链接调用代码:
<div class="flink">
<h3>友情链接</h3>
{dede:flink type='text'/}
</div>
CSS 样式 (关键步骤)
在你的 CSS 文件中,通过 CSS 选择器来隐藏默认的 <dl>, <dt>, <dd> 标签,并给 <a> 标签添加 <li> 的样式。

/* 隐藏默认的 dl, dt, dd 标签 */
.flink dl,
.flink dt,
.flink dd {
display: none; /* 或者 margin: 0; padding: 0; */
}
/* 将 <a> 标签显示为列表项样式 */
.flink a {
display: inline-block; /* 或者 display: block; */
margin: 5px 10px 5px 0;
padding: 5px 10px;
border: 1px solid #ddd;
border-radius: 4px;
text-decoration: none;
color: #333;
transition: all 0.3s ease;
}
.flink a:hover {
border-color: #007bff;
color: #007bff;
}
优点:
- 无需修改模板:升级 DedeCMS 时,模板文件不会被覆盖,样式设置得以保留。
- 简单快捷:只需要添加几行 CSS 代码。
- SEO 无影响:HTML 结构依然是符合规范的,只是被 CSS 隐藏了。
修改 include/taglib/flink.lib.php 文件 (灵活,但需注意升级)
如果你不希望使用 <dl> 结构,并且希望 {dede:flink} 直接输出 <li>,你需要修改 DedeCMS 的核心库文件。
⚠️ 重要提示: 修改核心文件意味着在下次升级 DedeCMS 时,你需要重新修改这个文件,请务必备份原文件。
定位文件
文件路径:/include/taglib/flink.lib.php
修改代码
打开 flink.lib.php 文件,找到第 87 行左右的代码(根据版本可能略有不同):
修改前 (默认代码):
// ... 前面代码 ... $artlist = "<dl class=\"friendlink\">\r\n"; // ... 中间循环代码 ... $artlist .= " <dd><a href='".$row['url']."' target='".$row['target']."'>".$row['name']."</a></dd>\r\n"; // ... 后面代码 ... $artlist .= "</dl>\r\n"; return $artlist;
修改后 (改为 <ul> 和 <li> 结构):
// ... 前面代码 ... // 将 <dl> 改为 <ul> $artlist = "<ul class=\"friendlink-list\">\r\n"; // ... 中间循环代码 ... // 将 <dd> 改为 <li> $artlist .= " <li><a href='".$row['url']."' target='".$row['target']."'>".$row['name']."</a></li>\r\n"; // ... 后面代码 ... // 将 </dl> 改为 </ul> $artlist .= "</ul>\r\n"; return $artlist;
模板代码调整
你的模板代码也需要相应调整,去掉默认的 <dl> 结构:
<div class="flink">
<h3>友情链接</h3>
{dede:flink type='text'/}
</div>
CSS 样式
为新的 <ul> 和 <li> 添加样式:
.flink-list {
list-style: none; /* 去掉默认的列表点 */
padding: 0;
margin: 0;
}
.flink-list li {
display: inline-block; /* 让链接在同一行显示 */
margin: 5px 10px 5px 0;
padding: 5px 10px;
border: 1px solid #ddd;
border-radius: 4px;
}
.flink-list li a {
text-decoration: none;
color: #333;
}
.flink-list li a:hover {
color: #007bff;
}
优点:
- HTML 结构更清晰:直接输出了语义化的
<ul>和<li>。 - CSS 更简单:不需要隐藏任何标签,样式直接作用于
<li>。
使用自定义函数/标签 (最灵活,适合高级用户)
如果你不想修改核心文件,又想要完全自定义的输出,可以创建一个自定义函数。
创建自定义函数文件
在你的模板目录下创建一个文件,myfunctions.php。
编写函数
在 myfunctions.php 中写入以下函数:
/**
* 自定义友情链接标签,输出 <li> 结构
* @param string $typeid 链接类型
* @param int $row 显示数量
* @return string
*/
function my_flink($typeid = '', $row = 10)
{
global $dsql;
$typeid = intval($typeid);
$row = intval($row);
$innertext = '';
$artlist = "<ul class=\"my-flink-list\">\r\n";
$query = "SELECT * FROM `#@__flink` WHERE ischeck=1";
if ($typeid > 0) {
$query .= " AND typeid = '$typeid'";
}
$query .= " ORDER BY pos DESC ORDER BY id DESC LIMIT 0, $row";
$dsql->SetQuery($query);
$dsql->Execute();
while ($row = $dsql->GetArray()) {
$innertext .= " <li><a href='".$row['url']."' target='".$row['target']."'>".$row['name']."</a></li>\r\n";
}
$artlist .= $innertext;
$artlist .= "</ul>\r\n";
return $artlist;
}
在模板中调用 在你的模板文件中,引入这个函数文件并调用:
{dede:include file='myfunctions.php'/}
<div class="flink">
<h3>友情链接</h3>
{dede:my function='my_flink()'/}
</div>
CSS 样式
与方法二中的 CSS 类似,只需将类名 .friendlink-list 改为 .my-flink-list 即可。
优点:
- 完全不修改核心:升级无忧。
- 完全可控:可以随心所欲地修改函数逻辑,比如增加更多参数,改变 HTML 输出结构等。
总结与推荐
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 方法一 (CSS) | 简单、安全、升级无忧 | HTML 结构略有不完美,依赖 CSS | 绝大多数情况下的首选,特别是对新手和希望网站稳定运行的站长。 |
| 方法二 (修改核心) | HTML 结构清晰,CSS 简单 | 升级会覆盖修改,需要重新操作 | 确定不会频繁升级 DedeCMS,且追求最标准 HTML 结构的开发者。 |
| 方法三 (自定义函数) | 最灵活、升级无忧 | 需要一定的 PHP 基础,步骤稍多 | 对代码有完全控制权,有二次开发需求的高级用户。 |
对于绝大多数用户,我强烈推荐 方法一,因为它在效果、安全性和易用性之间取得了最佳平衡。
