文章采集调用(使用dedecms这个程序建站有五年多的时间期间不少)

优采云 发布时间: 2021-09-03 22:03

  文章采集调用(使用dedecms这个程序建站有五年多的时间期间不少)

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

  很多时候我们用织梦background调用数据的时候,自带的标签往往调用不到我们想要的数据,所以不得不写sql来调用。之前有一个问题,我两天没做。出来后看到下面文章,问题解决了。

  我用dedecms建网站已经五年多了,期间建了很多网站。欢迎朋友找我建网站。

  补充:

  发布这个文章后,无意中发现在dedecms的GetOneArchive中,只要传入一个文档id就可以得到文章链接。其实这个函数返回的文章信息数组收录了Up:链接地址、标题、文章ID、列ID,这里只需要文章链接地址,具体代码如下:

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

  [field:title runphp='yes']@me=cn_substr(@me, 50);[/field:title]

  {/dede:sql}

  如果只需要调用文章的链接地址,这个方法是一种快捷方式。 文章下一部分介绍的方法比较复杂,但是如果要调用文章的链接地址,也要调用列名。试试看。

  为什么使用 dede:php、dede:sql

  在一些更复杂的调用中使用dede:arclist标签不能解决问题,比如调用成员发出的文章等,通常通过dede:sql标签来完成。达成。

  我今天提到的电话也很特别。就是在首页调用指定关键字的文章。其实这个和dedecms相关的文章标签类似。这里有两种方式与您分享。

  dede:sql标签调用了指定关键字文章静态地址,这里是dede:sql上dedecms的官方介绍。

  Sql 标签

  功能描述:用于通过SQL查询从模板中获取返回的内容。

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

  (1)Syntax:{dede:sql sql="write sql statement here"}底层模板{/dede:sql}

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

  (3)Underlying 模板:所有在 SQL 语句中找到的字段都可以用 [field:field name/] 调用。

  了解了dede:sql标签后,就可以根据自己的需要编写sql语句了。这里我想用指定的关键字调用文章。 sql语句如下:

  代码如下:“select * From dede_archives a where a.arcrank>-1 and a.title like'%Script%' limit 8”

  句子分析:a.arcrank>-1 限制调用批准的文章; like '%script%' 调用指定关键字的文章; limit 8 是调用 8 的次数

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

  1、 先解决完整标题和截断的问题:我用 [field:title runphp='yes']@me=cn_substr(@me, 50);[/field:title] 我相信你方法会经常用到,这里就不多介绍了,以后可能会专门介绍文章来介绍这个用法。50是截断长度

  2、 解决dede的问题:sql tag static 文章地址:这个比较麻烦,我在网上翻了一下,给出的解决方法大多是href="/plus/view.php?aid =[ field:id/]",显然这不是我想要的。这不是静态地址,其他地址用arclist调用,都是静态地址。结果是一篇文章的文章有两个地址,一个静态的,一个动态的。这显然对seo不友好,还不如自己折腾最后成功

  3、 解决无法正确获取id的问题:之前没注意到,因为dede_arctype和dede_archives这两个表的id字段名是一样的,导致底层模板无法获取到正确的id。之前的选择已更改并添加了别名。

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

  代码如下:(dede:sql sql="select * From dede_archives a, dede_arctype t where a.typeid = t.id and a.title like'%Life Tips%' and a.arcrank>-1限制 8"}

  [field:title runphp='yes']@me=cn_substr(@me, 50);[/field:title]

  {/dede:sql}

  无论如何,我终于达到了我想要的效果。后来想了想怎么用dede:php标签来实现这个效果。其实方法和dede:sql标签是一样的,就不多说了。直接粘贴代码:

  代码如下:(dede:php)

  $dsql->SetQuery("选择a.id作为辅助,t.id作为tid,typeid,senddate,title,ismake,arcrank,namerule,typedir from dede_archives a, dede_arctype t where a.typeid = t.id和 a.title like'%Life Tips%' and a.arcrank>-1 limit 8");

  $dsql->Execute();

  while($row = $dsql->GetArray()){

  echo''.cn_substr($row['title'], 50).'';

  }

  {/dede:php}

  希望这篇文章能帮到你dedecms建站。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线