ASPCMS 友情链接调用标签实战指南:文字与图片链接的完整写法
ASPCMS 友情链接的两种调用方式:文字链接与图片链接。本文给出 linklist 标签的完整示例代码,包括 type、group 参数的用法说明,让你快速在网站底部或侧边栏输出友链列表,无需查阅官方文档。
保哥从 2010 年前后开始接触 ASPCMS,那会儿国内做企业站的朋友十有八九都在用它。直到现在我手里还有几个老客户的网站跑在 ASPCMS 上,每次帮他们维护时,最常被问到的就是「友情链接怎么调出来」「为什么我加的链接不显示」「想要图片链接和文字链接同时存在该怎么写」。这篇文章把我这十几年踩过的坑、写过的标签、调试过的模板全部整理出来,希望对还在维护 ASPCMS 站点的朋友有帮助。
一、ASPCMS 友情链接系统的底层逻辑
要把标签用对,先得理解 ASPCMS 的友情链接是怎么组织的。后台「内容管理 → 友情链接」里的每一条记录,本质上是一行存在 AspCms_Friendlink 表里的数据。这张表里几个核心字段决定了前台能不能调出来:
linkType:链接类型,1 代表文字链接,2 代表图片链接。groupID:分组编号,对应后台「友情链接分类」里设置的分类。linkName:链接名称,文字链接显示的就是它。linkUrl:跳转地址。linkPic:图片链接的图片路径,文字链接此字段为空。isLock:是否审核通过,前台只调显示已审核的记录。Sort:排序值,数字越小越靠前。
保哥的经验是,做 ASPCMS 项目时千万不要把所有链接都丢到默认分组里,一定要在后台先建好分组,比如「合作伙伴」「行业站点」「友情链接」「底部链接」,前台调用时按 group=N 区分。这样后期客户自己加链接也不会乱。
二、文字友情链接的标准调用写法
文字链接是最常用的形式,下面这段是 ASPCMS 默认模板里我反复用过的写法:
{aspcms:linklist type=font group=1}
<li><a href="[linklist:link]" target="_blank">[linklist:name]</a></li>
{/aspcms:linklist}这里要解释几个关键点:
第一,type=font 表示只调文字链接,对应数据库里 linkType=1 的记录。如果你后台明明加了链接前台却不显示,第一件事就是检查这个 type 是不是写错了,比如把 font 写成 text 是不行的。
第二,group=1 是分组 ID,对应后台分类里的编号。后台第一个分类默认是 1,第二个是 2,依此类推。保哥习惯把数字直接写死在模板里,但如果你想做成可配置的,可以用 ASPCMS 的全局变量或者直接传参。
第三,[linklist:link] 和 [linklist:name] 是 ASPCMS 的字段占位符。每循环一条记录,这两个会被替换成对应数据库字段的值。常用的占位符还有 [linklist:pic](图片地址)、[linklist:intro](链接简介)、[linklist:sort](排序值)。
保哥实际项目里更喜欢这样写,配合上简介当 title 属性,对 SEO 友好一点:
{aspcms:linklist type=font group=1}
<li>
<a href="[linklist:link]" target="_blank" rel="nofollow noopener" title="[linklist:intro]">
[linklist:name]
</a>
</li>
{/aspcms:linklist}加 rel="nofollow" 这一步很多人会漏。友情链接如果不加 nofollow,等于把自己网站的权重白白送出去,特别是当你的链接对象不是同等量级的站点时,这个细节一定要注意。noopener 则是防止新窗口打开后劫持父页面的安全做法。
三、图片友情链接的调用与样式控制
图片链接适合放在底部展示合作伙伴 LOGO 这种场景。标准写法是这样:
{aspcms:linklist type=pic group=2}
<li>
<a href="[linklist:link]" target="_blank">
<img src="[linklist:pic]" alt="[linklist:name]" width="100" height="33" />
</a>
</li>
{/aspcms:linklist}保哥要特别强调几个我反复看到客户站点出问题的点:
首先,alt 属性必须填,而且要有意义。我见过太多模板里直接写死 alt="友情链接" 或者干脆不写,这对 SEO 是浪费。用 [linklist:name] 自动取链接名称,每张图片就有了不同的 alt 文字。
其次,inline 样式能少写就少写。原来很多 ASPCMS 老模板里会写 style="border: 1px solid #D6EAF1;" 这种内联样式,建议全部抽到 CSS 里:
.friend-links img {
border: 1px solid #D6EAF1;
display: block;
max-width: 100%;
height: auto;
}最后,width 和 height 属性要保留,浏览器会用这两个值预先分配空间,避免页面加载时的布局抖动(CLS),这是 Google Core Web Vitals 里的一个核心指标。
四、混合调用与全部链接的高级用法
实际项目里经常有这样的需求:底部既要显示文字链接又要显示图片链接,或者某个分组的所有链接不分类型一起调出来。
如果要调一个分组下的全部链接(不区分图片或文字),把 type 属性去掉,或者写成 type=all:
{aspcms:linklist group=1}
<li>
{if:[linklist:pic]!=""}
<a href="[linklist:link]" target="_blank">
<img src="[linklist:pic]" alt="[linklist:name]" />
</a>
{else}
<a href="[linklist:link]" target="_blank">[linklist:name]</a>
{end if}
</li>
{/aspcms:linklist}这段里用了 ASPCMS 的条件标签 {if:},根据 [linklist:pic] 是否为空来判断当前是图片链接还是文字链接,输出不同的 HTML 结构。这种写法在保哥经手的项目里用得最多,因为它把判断逻辑放在模板里,后台运营人员不需要懂代码,只要在后台传图片就自动变成图片链接,不传图片就是文字链接。
如果要按数量限制,加 num 参数:
{aspcms:linklist type=font group=1 num=10}
<li><a href="[linklist:link]" target="_blank">[linklist:name]</a></li>
{/aspcms:linklist}num=10 就是最多输出 10 条。配合后台的排序值,可以精准控制首页只展示最重要的几个链接。
五、常见问题排查与调试技巧
保哥这些年帮人调 ASPCMS 模板,最常遇到的就是「标签写对了但前台不显示」。排查顺序是这样的:
第一步,检查后台链接是否审核通过。ASPCMS 后台添加链接默认是未审核状态,前台不显示。一定要在后台勾选「审核通过」。
第二步,检查分组 ID 是否正确。后台「友情链接分类」里看每个分类左边的编号,那个才是 group=N 里要填的 N。如果你删过分类再新建,编号可能不是 1、2、3 连续的,会跳号。
第三步,清缓存。ASPCMS 有自带的页面缓存机制,模板改了之后前台没变化,去后台「系统管理 → 数据维护 → 清空缓存」点一下。
第四步,看模板路径。ASPCMS 的模板文件一般在 /templates/模板名/html/ 目录下,friend.html 或者 footer.html 里写友情链接调用标签。如果你改的不是当前启用的模板,前台当然不变。
第五步,开调试模式。在 /config/AspCms_Config.asp 里把 Application("AspCms_DebugMode") 设为 True,错误信息会直接打到前台,方便定位问题。调试完一定要关掉,不然会泄露站点信息。
六、为 SEO 优化的友情链接最佳实践
保哥做了多年 SEO,友情链接这块踩过的坑足够写一本书。最后说几个 ASPCMS 站点特别容易忽视的点:
第一,不是所有友情链接都要 nofollow。同等量级、内容相关的优质站点之间互链是有正向作用的,不需要加 nofollow。但如果对方是低质量站、行业不相关、或者你怀疑对方权重比你低很多,加上 nofollow 更安全。
第二,外链一定要 target="_blank" + rel="noopener"。前者是用户体验考虑,后者是安全考虑,两个都不能少。
第三,定期检查死链。友情链接给久了,对方的站可能挂了或者改版了。死链对自身 SEO 是负面影响。可以用 Screaming Frog 或者 Ahrefs 的 Broken Link Checker 定期跑一遍。
第四,结构化数据可以加。在友情链接区域外层加一个 <nav aria-label="友情链接">,配合恰当的 schema.org 标记,搜索引擎能更好理解这个区块的语义。
FAQ
Q1:ASPCMS 后台添加了友情链接,但前台一直不显示,怎么办?
按顺序排查:先确认后台链接是「审核通过」状态;然后检查模板里 group=N 的 N 是否对应到该链接所在的分类编号;再清一次系统缓存;最后确认你修改的是当前启用模板的文件。九成以上的不显示问题都在这四步里。
Q2:能不能同时调出多个分组的友情链接?
ASPCMS 原生标签的 group 参数只接受单个分组 ID。如果要调多个分组,可以写两段独立的 {aspcms:linklist} 标签,分别指定不同的 group。或者修改 /inc/AspCms_LinkAction.asp 里的查询逻辑支持多分组(不建议,升级时会被覆盖)。
Q3:友情链接按什么顺序显示?怎么调整?
默认按 Sort 字段升序排列,数字越小越靠前。后台编辑链接时有「排序」字段,把重要的链接设成 1、2、3,次要的设成 99 或者更大就行。也可以通过 order 参数控制,比如 order=time 按添加时间排序。
Q4:调出来的链接太多想做分页,可以吗?
友情链接通常不分页,一般用 num=N 限制显示数量。如果真的需要分页(比如做友情链接展示页),需要自己写 ASP 代码查询 AspCms_Friendlink 表配合 ASPCMS 的分页函数 getPager,原生 {aspcms:linklist} 标签不支持分页参数。
本文标题:《ASPCMS 友情链接调用标签实战指南:文字与图片链接的完整写法》
本文链接:https://zhangwenbao.com/aspcms-calls-the-link-label.html
版权声明:本文原创,转载请注明出处和链接。许可协议: CC BY-NC-SA 4.0