首页 > CMS > 织梦DEDE > 正文

织梦CMS调用dede:sql,dede:php标签 调用文章的静态链接地址

2024-07-09 22:52:02
字体:
来源:转载
供稿:网友

具体代码如下

  1. {dede:sql sql="select * From dede_archives a where a.title like '%<a href="http://www.qmtx3.com/live/" target="_blank">生活</a>小<a href="http://www.qmtx3.com" target="_blank">窍门</a>%' and a.arcrank>-1 limit 8"}
  2. <li><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]</a></li>
  3. {/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条

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

dede:sql标签其实就是通过sql查询数据库返回查询的字段(注:这里查询的字段为*,根据的实际情况来查询),底板模板中的[field:字段名称]调用的就是这个返回的字段,这些字段是没有经过任何程序处理的,直接就是数据库里的内容。比如说fulltitle,arcurl这个在数据库中就没有这两个字段,平常我们在dede:arclist中用到的这些字段只不过是dede在php程序中处理的。知道了问题所在然后查了下资料终于解决了。

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调用文章静态链接地址的完美方法

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表