织梦CMS用sql语句调用文章静态链接地址的办法

本文实例讲述了织梦CMS用sql语句调用文章静态链接地址的办法。推荐给大伙供大伙参考。具体剖析如下:

有时候大家用DEDECMS后台调用数据的时候,自带的标签有时候都无法调用大家要的数据,因此要自己写sql去调用,之前有个问题搞了两天都没搞出来,后来看到下面这个文章,问题解决了.

用织梦CMS这个程序网站建设有五年多的时间了,期间建了不少网站,欢迎各位朋友找我网站建设.

补充:

发布这篇文章后,无意间发目前了织梦CMS的GetOneArchive,只须传入一个文档id就可以获得文章链接了,其实这个函数返回的的文章信息数组包含了:链接地址,标题,文章ID,栏目ID,这里仅需文章链接地址,具体代码如下:

复制代码代码如下:{dede:sql sql="select * From dede_archives a where a.title like '%DEDECMS网站建设%' and a.arcrank>-1 limit 8"}

<</p>li><</p>a title="[field:title/]" href="[field:id runphp='yes']$url=GetOneArchive;@me=$url['arcurl'];[/field:id]">[field:title runphp='yes']@me=cn_substr;[/field:title]</</p>a></</p>li>

{/dede:sql}

假如你仅只需要要调用文章的链接地址该办法不失为一个快捷的办法,文章下部分介绍的办法较为复杂,但假如你想调用文章链接地址的同时还想调用栏目名字可以试下.

为何要用dede:php,dede:sql

在一些比较复杂的调用中用dede:arclist标签是解决不了问题的,譬如说大伙常说的调用某一会员发布的文章等等之类,这部分通常要通过dede:sql标签来达成.

今天我所说的调用也是比较特殊的就是在首页调用指定关键词的文章,其实这个跟织梦CMS的有关文章标签类似,这里给大伙推荐两种办法.

dede:sql标签调用指定关键词文章静态地址,这里引用织梦CMS官方关于dede:sql的介绍.

Sql标记

功能说明:用于从模板中用一个SQL查看获得其返回内容。

适用范围:非扩展模块所有模板。

语法:{dede:sql sql="这里写sql语句"}底层模板{/dede:sql}

属性:[1] sql 完整的SQL查看语句。

底层模板:SQL语句中查出的所有字段都可以用[field:字段名/]来调用。

好了知道dede:sql标签后,就可以依据我们的需要写sql语句了,我这里是要调用指定关键词的文章,sql语句如下:

复制代码代码如下:"select * From dede_archives a where a.arcrank>-1 and a.title like '%脚本%' limit 8"

语句分析:a.arcrank>-1限制调用已审核的文章;like '%脚本%'调用指定关键词的文章;limit 8为调用条数为8条

然后就开始写完整的标签和底层模板了,如下:

1、第一解决完整标题和截字问题:我用的是[field:title runphp='yes']@me=cn_substr;[/field:title]这种办法相信大伙也常常用到,这里就不多作介绍了,将来可能会专门弄个文章介绍这种使用方法。50就是截字长度

2、解决dede:sql标签静态文章地址问题:这里比较麻烦了,我在网上转了一下,多数给出的解决方法就是href="/plus/view.php?aid=[field:id/]",显然这不是我想要的这不是静态地址,而其他地址用arclist调用的又是静态地址,结果就成了一篇文章有两个地址一个静态一个动态,这对网站优化来讲显然不友好,最好通过自己折腾终于成功了

3、解决id不可以正确获得的问题:之前没注意到由于dede_arctype和dede_archives两个表id字段名是一样的,以至于底层模板获得不到正确的id,之前select改了下,增加了别名。

dede:sql调用文章静态链接地址的完美办法

复制代码代码如下:{dede:sql sql="select * From dede_archives a, dede_arctype t where a.typeid = t.id and a.title like '%生活小技巧%' and a.arcrank>-1 limit 8"}

<</p>li><</p>a title="[field:title/]" href="[field:array runphp='yes'] @me=GetFileUrl; [/field:array]">[field:title runphp='yes']@me=cn_substr;[/field:title]</</p>a></</p>li>

{/dede:sql}

不管如何说总算还是达成了我想要的成效,后来想了想用dede:php标签怎么样达成这个成效呢,其实办法和dede:sql标签是一样的,也就不多怎么说了,直接贴代码:

复制代码代码如下:{dede:php}

$dsql->SetQuery;

$dsql->Execute;

while){

echo '<</p>li><</p>a title="'.$row['title'].'" href="'.GetFileUrl.'">'.cn_substr.'</</p>a></</p>li>';

}

{/dede:php}

期望本文所述对大伙的织梦CMS网站建设有所帮。