使用系统内置的友情链接标签 {dede:flink}
这是最直接、最简单的方法,适用于绝大多数场景,织梦系统自带了一个强大的友情链接标签,可以直接在模板文件(如 .htm)中调用。

(图片来源网络,侵删)
基础用法
这个标签会读取所有启用的友情链接,并以列表形式展示。
{dede:flink}
<a href="[field:url/]" target="[field:target/]">[field:name/]</a>
{/dede:flink}
[field:url/]:链接地址。[field:name/]:链接名称。[field:target/]:打开方式,通常是_blank(新窗口打开) 或_self(当前窗口打开)。
带有样式的用法
你可以给链接添加 CSS 类,方便进行样式控制。
{dede:flink}
<a href="[field:url/]" target="[field:target/]" class="friend-link">[field:name/]</a>
{/dede:flink}
高级用法(按类型、按分组显示)
织梦的友情链接支持按类型(文字、图片)和按分组显示,这非常实用,因为通常我们会把文字链接和图片链接分开显示,或者为不同的客户设置不同的分组。
参数说明:

(图片来源网络,侵删)
type:'text'(文字链接),'image'(图片链接),'textall'(所有文字),'all'(所有类型)。row: 显示的数量,默认为10,len链接名称的长度,默认为24` (字节)。linktype: 链接类型,'1'(普通链接),'2'(首页链接),'0'(所有)。typeid: 这是关键参数,用于指定链接分组,你需要在后台添加友情链接时为链接指定一个分组 ID。
场景1:只显示文字链接
<div class="text-links">
<h4>合作伙伴</h4>
{dede:flink type='text' row='20'}
<a href="[field:url/]" target="_blank">[field:name/]</a>
{/dede:flink}
</div>
场景2:只显示图片链接
<div class="image-links">
<h4>友情伙伴</h4>
{dede:flink type='image' row='10'}
<a href="[field:url/]" target="_blank">
<img src="[field:img/]" alt="[field:name/]" width="88" height="31" />
</a>
{/dede:flink}
</div>
[field:img/]:图片链接的地址。
场景3:按分组显示(最常用)
假设你在后台创建了两个分组:
ID = 1,名称为 "文字合作伙伴"ID = 2,名称为 "图片合作伙伴"
在后台添加友情链接时,记得为每个链接选择对应的分组。
模板中调用分组1的文字链接:
<div class="partner-group-1">
<h4>文字合作伙伴</h4>
{dede:flink type='text' typeid='1' row='15'}
<a href="[field:url/]" target="_blank">[field:name/]</a>
{/dede:flink}
</div>
模板中调用分组2的图片链接:

(图片来源网络,侵删)
<div class="partner-group-2">
<h4>图片合作伙伴</h4>
{dede:flink type='image' typeid='2' row='6'}
<a href="[field:url/]" target="_blank">
<img src="[field:img/]" alt="[field:name/]" width="100" height="40" />
</a>
{/dede:flink}
</div>
使用 PHP 代码调用(适用于二次开发)
如果你需要在 PHP 文件(如 .php)中获取友情链接数据,而不是在模板中直接显示,可以使用织梦提供的 PHP 函数。
获取所有链接数据
GetFriendLinks() 函数可以获取友情链接数据。
示例代码 (例如在 index.php 中):
<?php
require_once (dirname(__FILE__) . "/include/common.inc.php");
// 调用函数获取友情链接
$links = GetFriendLinks();
// 遍历并输出链接
if(is_array($links)){
foreach($links as $link){
echo "<a href='".$link['url']."' target='".$link['target']."' class='friend-link'>".$link['name']."</a>";
}
}
?>
按类型和分组获取数据
GetFriendLinks() 函数也支持参数,用法和模板标签类似。
<?php
require_once (dirname(__FILE__) . "/include/common.inc.php");
// 获取 typeid=1 分组的所有文字链接
$textLinks = GetFriendLinks(1, 'text', 20);
if(is_array($textLinks)){
foreach($textLinks as $link){
echo "<a href='".$link['url']."' target='_blank'>".$link['name']."</a>";
}
}
?>
函数参数:
typeid: 分组ID (可选)type: 链接类型 (text,image等,可选)row: 数量 (可选)
使用自定义函数(高度自定义)
如果你对输出的 HTML 结构有非常特殊的要求,或者需要做复杂的逻辑处理,可以编写一个自定义函数。
步骤:
-
创建自定义函数文件 在
/include/helpers/目录下创建一个新文件,extend.helper.php,这个文件专门用来存放自定义函数。 -
编写函数 在
extend.helper.php中编写你的函数。// 函数命名规则:+函数名 function GetMyCustomLinks($typeid = 0, $type = 'text', $row = 10) { global $dsql; $typeid = (int)$typeid; $type = preg_replace("#[^a-z]#i", "", $type); $row = (int)$row; $innertext = ''; $orwheretype = ''; if($typeid > 0) $orwheretype .= " And typeid='$typeid' "; if($type != 'all') $orwheretype .= " And linktype='$type' "; $query = "Select * From `#@__flink` where ischeck=1 $orwheretype order by pos asc"; $dsql->SetQuery($query); $dsql->Execute(); $links = array(); while($row = $dsql->GetArray()) { $links[] = $row; } return $links; } -
在模板中调用 现在你可以像使用普通标签一样调用这个自定义函数了。
{dede:getmycustomlinks typeid='1' type='text' row='15'} <li><a href="[field:url/]" target="_blank">[field:name/]</a></li> {/dede:getmycustomlinks}这种方法提供了最大的灵活性,但需要一定的 PHP 基础。
总结与建议
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
{dede:flink} |
最简单、最直接,官方支持,无需编程 | 灵活性相对较低,HTML 结构固定 | 绝大多数常规需求,如页脚、侧边栏的友情链接展示。 |
GetFriendLinks() 函数 |
灵活,可在 PHP 逻辑中处理数据 | 需要修改 PHP 文件,不适合纯前端开发者 | 需要在 PHP 中获取链接数据,例如用于生成 XML、JSON 或其他复杂逻辑。 |
| 自定义函数 | 高度灵活,可完全控制输出格式和逻辑 | 需要编写 PHP 代码,有一定门槛 | 对友情链接的展示有非常特殊、复杂的需求,例如需要根据用户权限显示不同链接等。 |
对于 99% 方法一 {dede:flink}已经完全够用了,特别是其 typeid 参数,可以轻松实现分组显示,是官方推荐的用法,建议你优先尝试使用这个标签。
