织梦dedecms使用sql语句调用文章静态链接地址的方法
时间:2019-03-14 00:00 来源: 点击:次
补充:发布这篇文章后,无意间发现在了dedecms的GetOneArchive,只要传入一个文档id就可以获得文章链接了,其实这个函数返回的的文章信息数组包含了:链接地址、标题、文章ID、栏目ID,这里只需要文章链接地址,具体代码如下:
如果你仅仅需要调用文章的链接地址该方法不失为一个快捷的方法,文章下部分介绍的方法较为复杂,但如果你想调用文章链接地址的同时还想调用栏目名称不妨试下.
为什么要使用dede:php?
dede:sql 在一些比较复杂的调用中用dede:arclist标签是解决不了问题的,比如说大家常说的调用某一会员发布的文章等等之类,这些一般要通过dede:sql标签来实现。
dede:sql标签调用指定关键字文章静态地址,这里引用dedecms官方关于dede:sql的介绍。
适用范围:非扩展模块所有模板。
(1)语法:{dede:sql sql="这里写sql语句"}底层模板{/dede:sql}
(2)属性:[1] sql 完整的SQL查询语句。
(3)底层模板:SQL语句中查出的所有字段都可以用[field:字段名/]来调用。
好了,了解dede:sql标签后,就可以根据自己的需求写sql语句了。
我这里是要调用指定关键字的文章,sql语句如下:
语句解析:a.arcrank>-1 限制调用已审核的文章;
like '%脚本%' 调用指定关键字的文章;
limit 8 为调用条数为8条
然后就开始写完整的标签和底层模板了,如下:
1、首先解决完整标题和截字问题:我使用的是[field:title runphp='yes']@me=cn_substr(@me, 50);[/field:title],这种方法相信大家也经常用到,这里就不多作介绍了,以后可能会专门弄个文章介绍这种用法。50就是截字长度
2、解决dede:sql标签静态文章地址问题:这里比较麻烦了,我在网上转了一下,多数给出的解决办法就是href="/plus/view.php?aid=[field:id/]",显然这不是我想要的这不是静态地址,而其他地址用arclist调用的又是静态地址,结果就成了一篇文章有两个地址一个静态一个动态,这对seo来说显然不友好,最好通过自己折腾终于成功了
3、解决id不能正确获取的问题:之前没注意到因为dede_arctype和dede_archives两个表id字段名是一样的,以至于底层模板获取不到正确的id,之前select改了下,增加了别名。
dede:sql调用文章静态链接地址的完美方法 代码如下:
不管怎么说总算还是实现了我想要的效果,后来想了想用dede:php标签如何实现这个效果呢?其实方法和dede:sql标签是一样的,也就不多说什么了,直接贴代码: 代码如下:
(责任编辑:admin) |