ecms调用友情链接这破事儿,我真是受够了。
干SEO十二年了,换过无数个CMS,最后发现还是帝国CMS(ECMS)最耐造,但也最让人头秃。特别是那个友情链接的调用,官方给的标签有时候就是不好使,或者样式丑得没法看,逼着你去改代码。之前有个刚入行的小兄弟,半夜给我打电话,声音都带了哭腔,说他的友情链接死活调不出来,要么全空,要么把整个网站结构都搞崩了。我听着都替他着急,这种低级错误,新手最容易踩坑。
咱们不整那些虚头巴脑的理论,直接上干货。你要想完美实现ecms调用友情链接,得先搞清楚你的数据库结构。ECMS的友情链接数据存在phome_enewslink表里。很多教程只给你一段代码,却不告诉你前提条件,这就是耍流氓。
第一步,你得确定你要调用的链接分类。比如你是想调“合作网站”还是“友情链接”?在后台管理那里,你得先建好分类,或者确认默认分类的ID是多少。通常默认是1,但如果你改过,那就得去数据库里查一下,别想当然。这一步要是错了,后面全是白搭。
第二步,打开你的模板文件。一般是在e/class/userfun.php或者你当前的模板目录下找footer.php或者sidebar.php。别去动核心文件,改坏了别怪我没提醒你。找到合适的位置,插入调用代码。这里有个坑,很多人直接用灵动标签[e:loop],结果发现调出来的数据顺序乱七八糟,或者分页都搞不定。
我给你一个最稳的写法,虽然看起来有点长,但绝对管用。
[e:loop={"select * from [!db.pre!]enewslink where checked=1 and classid=1 order by lid desc limit 10",10,24,0}]
[/e:loop]
注意看,这里用了checked=1,这是为了确保只调用已审核通过的链接,不然你后台还没审核的草稿都跑出来了,那脸往哪搁?classid=1改成你实际的分类ID。order by lid desc是按ID倒序,最新的在最前面。limit 10限制显示10条,别贪多,多了影响加载速度,百度蜘蛛也不喜欢。
第三步,调试样式。代码调出来了,但可能是一坨,没有换行,没有间距。这时候别急着去改PHP代码,去CSS里找对应的容器。给链接加个display: inline-block,设个margin,搞定。这一步最磨人,因为每个网站的布局都不一样,你得根据自己模板的CSS类名去微调。我有一次为了调一个友情链接的hover效果,折腾了两个小时,最后发现是父级div的overflow:hidden给挡住了,真是气得想砸键盘。
还有一种情况,就是你想调用图片链接。这时候代码得稍微改改。
[e:loop={"select * from [!db.pre!]enewslink where checked=1 and classid=1 and mylink=1 order by lid desc limit 5",1,24,0}]
[/e:loop]
这里加了mylink=1,这是判断是否为图片链接的关键字段。如果你发现图片出不来,去后台检查那个链接是不是勾选了“图片链接”选项。很多时候,问题就出在这种小细节上,官方文档里写得模棱两可,全靠经验去填坑。
最后,别忘了检查robots.txt。有些站长为了省事,把友情链接页面直接屏蔽了,或者没给权重。友情链接是传递权重的,你得确保搜索引擎能爬取到这些链接。我在做ecms调用友情链接优化时,特别强调这一点,因为很多同行只顾着调出来,不管蜘蛛看不看得到,结果做了半天无用功。
这事儿急不得,你得耐着性子一行行代码去对。遇到报错别慌,先看后台日志,再看数据库。实在搞不定,去帝国论坛翻翻老帖子,虽然界面丑,但干货多。记住,SEO没有捷径,全是这些琐碎的细节堆出来的。希望这篇能帮你省下几个不眠之夜。