dedecms使用sql语句调用文章静态链接地址的方法

所属分类: CMS教程 / dedecms 阅读数: 1901
收藏 0 赞 0 分享

本文实例讲述了dedecms使用sql语句调用文章静态链接地址的方法。分享给大家供大家参考。具体分析如下:

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

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

补充:

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

复制代码
代码如下:
{dede:sql sql="select * From dede_archives a where a.title like '%织梦建站%' and a.arcrank>-1 limit 8"}
<</code>li><</code>a title="[field:title/]" href="[field:id runphp='yes']$url=GetOneArchive(@me);@me=$url['arcurl'];[/field:id]">[field:title runphp='yes']@me=cn_substr(@me, 50);[/field:title]</</code>a></</code>li>
{/dede:sql}

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

为什么要使用dede:php,dede:sql

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

今天我所说的调用也是比较特殊的就是在首页调用指定关键字的文章,其实这个跟dedecms的相关文章标签类似,这里给大家分享两种方法.

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

Sql标记

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

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

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

(2)属性:[1] sql 完整的SQL查询语句。

(3)底层模板: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(@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: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"}
<</code>li><</code>a title="[field:title/]" href="[field:array runphp='yes'] @me=GetFileUrl(@me['id'],@me['typeid'],@me['senddate'],@me['title'],@me['ismake'],@me['arcrank'],@me['namerule'],@me['typedir'],@me['money']); [/field:array]">[field:title runphp='yes']@me=cn_substr(@me, 50);[/field:title]</</code>a></</code>li>
{/dede:sql}

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

复制代码
代码如下:
{dede:php}
$dsql->SetQuery("select a.id as aid, t.id as tid,typeid,senddate,title,ismake,arcrank,namerule,typedir From dede_archives a, dede_arctype t where a.typeid = t.id and a.title like '%生活小窍门%' and a.arcrank>-1 limit 8");
$dsql->Execute();
while($row = $dsql->GetArray()){
echo '<</code>li><</code>a title="'.$row['title'].'" href="'.GetFileUrl($row['aid'],$row['typeid'],$row['senddate'],$row['title'],$row['ismake'],$row['arcrank'],$row['namerule'],$row['typedir'],$row['money']).'">'.cn_substr($row['title'], 50).'</</code>a></</code>li>';
}
{/dede:php}

希望本文所述对大家的dedecms建站有所帮助。

更多精彩内容其他人还在看

织梦dedecms 忘记管理员后台密码的解决技巧

好多情况下,由于各种原因忘记了dedecms的密码,给大家带来了很大的麻烦,官方也没有出直接修改密码的东西可能是为了安全考虑吧。下面是最根本的方法,需要的朋友可以参考下。
收藏 0 赞 0 分享

取消dedecms 留言簿的验证码的方法

有时候感觉加了验证码,为互动带来了麻烦,如果垃圾广告很少的话可以取消,下面是具体的实现方法。
收藏 0 赞 0 分享

DEDECMS相关文章不相关的解决办法

关键字描述:相关 办法 解决 文章   " < row-> ss &rsquo DEDE的相关文章完全不相关,有朋友在DEDE官方放出根据TAG显示相关文章,也是很不错,可惜我在根据那边文章改DEDE代码后老是不行,可能是能力有限,当然也有可能是代
收藏 0 赞 0 分享

Dedecms默认模板用户评论扩展

关键字描述:评论 扩展 用户 模板 默认 " < > class 登录 Dedecms默认模板内容页评论处有个不足的地方,就是用户登录之后还会出现那个提示用户登录的框子,天涯这里给出了以下解决方案,如果喜欢的朋友可以拿去。 首先我们给内容页模板写上一段
收藏 0 赞 0 分享

DEDE取消发表文章时去掉验证码

关键字描述:dede 取消 发表文章 验证码 网站 关闭 后台 我的一个DEDECMS的网站里面所有的东西都是自己发布的,所以不需要验证码! DEDE默认是有验证码的,而且后台是不能关闭的,所以我们需要对代码动下手术拉! 今天,小青就在xkzzz谈一谈如何将d
收藏 0 赞 0 分享

【Arclist 标记】--Dedecms模板标签代码

关键字描述:标签 代码 模板 标记 表示 文档 < " 属性 orderby 这个标记是DedeCms最常用的一个标记,也叫自由列表标记,其中 hotart、coolart、likeart、ar
收藏 0 赞 0 分享

Dedecms实时更新热门关键字!

关键字描述:关键字 热门 更新 实时 标记 Copy code < subday num Dedecms实时更新热门关键字其实实现起来很简单,可是很多人不知道。 登录到dedecms后台 后台:自定义宏标记 添加一标记: 所属栏目:默认不用动 标记名称:ke
收藏 0 赞 0 分享

从零学DedeCms模板教程

关键字描述:教程 模板 < 模版 代码 标记 &mdash 制作 field:title/ DedeCms真是一个非常棒的系统,我从接触到现在一年时间再也没有理会其他CMS系统,推荐刚开始建站或准备换程序的朋友使用DedeCms系统。就像柏拉图说的:利剑已出,天下必乱
收藏 0 赞 0 分享

dedecms制作的admin5的评论效果

dedecms制作的admin5的评论效果 哪位朋友修改后了 请出个演示 以便让其他朋友提供参考 谢谢 声明:大家下载后请先在本地调式,确定无误后再使用。请备份原文件 把附件一覆盖到 主目录plus文件夹下; 把附件二覆盖到
收藏 0 赞 0 分享

dede解决两个标题之间的空格问题

关键字描述:空格 问题 之间 标题 解决 两个 显示 dedecms 一行 没有 问题: dedecms想在一行显示多个标题,比如两个或者三个,标题之间不需要空格,但是dedecms默认的一行显示的标题间有空格 修改./include/inc_arcpart_view.
收藏 0 赞 0 分享
查看更多