- 后台添加/编辑时,输入框的字符限制。
- 前台模板调用时,实际显示的字数限制。
这两种情况的限制是独立的,需要分别处理。

(图片来源网络,侵删)
后台添加/编辑时的字数限制
当你登录织梦后台,进入“核心” -> “友情链接”页面,点击“增加一个链接”时,会看到网站名称和网站地址的输入框。
网站名称 的字数限制
这个限制是由数据库字段长度决定的。
- 默认限制: 织梦默认的
dede_friendlink数据库表中,webname字段(存放网站名称)的长度是 50个字符。 - 如何查看/修改:
- 登录你的网站数据库管理工具(如 phpMyAdmin)。
- 找到你的织梦数据库,找到
dede_friendlink表(如果你的表前缀不是dede_,请使用你自己的前缀)。 - 点击
webname字段,查看其“长度/值”属性,默认是50。 - 修改方法: 你可以直接在这里修改长度,比如改为
100。修改前务必备份数据库! 修改后,你之前添加的超过50个字符的网站名称就能正常显示了。
如果你想添加一个超过50个字符的网站名称,你需要直接修改数据库中 webname 字段的长度。
网站地址 的字数限制
这个限制同样由数据库字段决定。

(图片来源网络,侵删)
- 默认限制:
url字段(存放网站地址)的长度是 255个字符。 - 说明: 255个字符对于绝大多数网址来说都绰绰有余,所以通常你不需要修改这个限制,如果你有特殊的长网址需求,可以按照上述方法修改
url字段的长度。
前台模板调用时的字数限制
这是更常见的情况,即使后台允许你输入很长的网站名称,但在前台页面显示时,你可能希望限制显示的字数,以保持页面布局的美观。
织梦提供了非常灵活的模板标签来实现这一点,核心是使用 {dede:field.function} 结合PHP的 substr() 函数。
使用 substr 函数截取(最常用)
假设你想让友情链接的网站名称最多显示 10个字符,如果超过则用省略号 代替。
在你的友情链接模板文件中(通常位于 /templets/default/ 目录下,文件名可能是 friendlink.htm 或其他自定义名称),找到调用友情链接的循环代码,将:

(图片来源网络,侵删)
<a href='[field:url/]' target='_blank'>[field:webname/]</a>
修改为:
<a href='[field:url/]' target='_blank'>
[field:webname function='substr(@me,0,10)."..."'/]
</a>
代码解释:
[field:webname function='...'/]:这是织梦的自定义函数调用格式。substr(@me, 0, 10):这是一个PHP函数。@me:代表当前字段的值,也就是[field:webname/]的原始内容。0:表示从第0个字符(即第一个字符)开始截取。10:表示截取10个字符。
- 表示在截取后的字符串末尾加上省略号。
进阶用法(仅当超过指定长度时才显示省略号):
如果希望名称本身不超过10个字符时,不显示省略号,可以使用更复杂的PHP判断:
<a href='[field:url/]' target='_blank'>
[field:webname function='if(strlen(@me)>10) substr(@me,0,10)."..." else @me'/]
</a>
strlen(@me):获取字符串的总长度。if(...) else ...:如果长度大于10,则截取并加省略号;否则,显示原内容。
使用 cn_substr 函数(按中文字符长度截取)
substr 函数是按字节计算的,一个中文字符可能占用2-3个字节,直接使用可能会导致截断一半汉字,织梦内置了 cn_substr 函数,可以更精确地按“字符个数”来截断中英文字符串。
<a href='[field:url/]' target='_blank'>
[field:webname function='cn_substr(@me, 10)' /]
</a>
cn_substr(@me, 10):会从[field:webname/]中截取前10个“字符”(无论中英文)。
同样,你也可以结合省略号使用:
<a href='[field:url/]' target='_blank'>
[field:webname function='if(strlen(cn_substr(@me,10))<strlen(@me)) cn_substr(@me,10)."..." else @me'/]
</a>
这段代码的意思是:如果截取10个字符后的长度不等于原始长度,说明被截断了,就加上省略号;否则显示原内容。
总结与建议
| 场景 | 默认限制 | 解决方案 |
|---|---|---|
| 后台添加 | 网站名称 50字符 | 修改数据库 dede_friendlink 表的 webname 字段长度。 |
| 前台显示 | 无硬性限制,取决于模板 | 修改模板文件,使用 {dede:field.function} 和 substr() 或 cn_substr() 函数进行截断。 |
最佳实践建议:
- 不要轻易修改数据库:除非你确实有超过50个字符的网站名称需求,否则不建议修改数据库,保持默认设置可以避免不必要的麻烦。
- 优先使用模板控制:页面的显示效果应该由模板来控制,通过修改模板文件来限制显示字数,是最灵活、最安全、最推荐的方法。
- 推荐使用
cn_substr:如果你的网站主要面向中文用户,使用cn_substr函数可以确保中文字符不会被错误地截断,显示效果更佳。
