当前位置:首页 > 行业动态 > 正文

如何利用{dede:loop}标签高效调用文章链接?

使用 {dede:loop} 标签调用文章链接的方法如下:,,“ html,{dede:arclist row='10'},[field:title/],{/dede:arclist},“,,这段代码会显示最近发布的10篇文章的标题和链接。

在织梦CMS(DedeCMS)中,{dede:loop}标签是一个非常强大的工具,可以用于调用任意表中的数据,默认情况下,这个标签并不支持直接调用文章链接(arcurl),下面将详细介绍如何通过自定义函数来解决这个问题:

基本语法

1、基本语法

“`

{dede:loop table=’dede_archives’ sort=” row=’4′ if=”}

<a href='[field:arcurl/]’>[field:title/]</a>

{/dede:loop}

“`

2、标签属性

table:查询表名

sort:用于排序的字段

row:返回结果的条数

if:查询的条件

解决无法调用文章链接的方法

1、打开include/common.func.php文件

在文件最后添加一个函数,代码如下:

“`php

function IDReturnURL($ID)

{

global $dsql;

$query = "Select arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,

tp.defaultname,tp.namerule,tp.moresite,tp.siteurl,tp.sitepath

from dede_archives arc left join dede_arctype tp on arc.typeid=tp.id where arc.id = ".$ID;

$row = $dsql>GetOne($query);

$ReturnURL = GetFileUrl($row[‘id’],$row[‘typeid’],$row[‘senddate’],$row[‘title’],$row[‘ismake’],$row[‘arcrank’],$row[‘namerule’],$row[‘typedir’],$row[‘money’],$row[‘filename’],$row[‘moresite’],$row[‘siteurl’],$row[‘sitepath’]);

return $ReturnURL;

}

“`

2、在模板中调用代码

修改模板中的调用代码为:

“`html

{dede:loop table=’dede_archives’ sort=” row=’4′ if=”}

<li><a href='[field:id function=IDReturnURL(@me)/]’>[field:title function=cn_substrR(@me,44)/]</a></li>

{/dede:loop}

“`

3、在自定义sql标签里调用

如果是在自定义sql标签里调用,则调用代码如下:

“`html

[field:id runphp=’yes’]$arcRow=GetOneArchive(@me);@me=$arcRow[‘arcurl’];[/field:id]

“`

常见问题解答(FAQs)

1、Q1:为什么在模板中直接使用[field:arcurl/]无法调用文章链接?

A1:这是因为DedeCMS的帮助手册提供的loop万能循环标签默认不支持[field:arcurl/]文章链接标签的直接调用,需要通过自定义函数来实现这一功能。

2、Q2:如何在自定义SQL标签中使用{dede:loop}标签调用文章链接?

A2:在自定义SQL标签中,可以使用以下代码:

“`html

[field:id runphp=’yes’]$arcRow=GetOneArchive(@me);@me=$arcRow[‘arcurl’];[/field:id]

“`

这段代码会获取当前文章的ID,并通过自定义函数GetOneArchive()获取文章的链接。

序号 描述 示例代码
1 {dede:loop name='list' row='5' limit='0,10' link='true'} 用于循环调用指定范围内的文章链接。name指定文章列表的别名,row指定每行显示的文章数量,limit用于限制显示的文章范围,link参数为true时,显示文章链接。 {dede:loop name='list' row='5' limit='0,10' link='true'}
2 {dede:loop name='list' row='5' limit='0,10' link='false'} 与上类似,区别在于不显示文章链接。 {dede:loop name='list' row='5' limit='0,10' link='false'}
3 {dede:loop name='list' row='5' limit='0,10'} 与上类似,区别在于不显示文章链接和标题,只显示文章ID。 {dede:loop name='list' row='5' limit='0,10'}
4 {dede:loop name='list' row='5' limit='0,10' fields='arcid, title, url' link='true'} 与上类似,但指定显示字段,如arcid(文章ID)、title)和url(文章链接)。 {dede:loop name='list' row='5' limit='0,10' fields='arcid, title, url' link='true'}
5 {dede:loop name='list' row='5' limit='0,10' fields='arcid, title, url' link='false'} 与上类似,区别在于不显示文章链接。 {dede:loop name='list' row='5' limit='0,10' fields='arcid, title, url' link='false'}
0