在织梦DEDECMS 5.7中,如何使用LOOP标签来调用文档地址arcurl?

在织梦DEDECMS 5.7中,使用LOOP标签调用文档地址arcurl的方法如下:,,“html,{dede:loop table='文章表'},[field:title/],{/dede:loop},“,,这段代码会在循环中输出文章的标题和链接地址。

织梦DEDECMS5.7中的LOOP标签是一个功能强大的循环标签,可以用于调用和展示数据库中的数据,默认情况下,LOOP标签并不支持直接调用文档地址arcurl,这给很多用户带来了困扰,为了解决这一问题,可以通过自定义函数的方式实现。

在织梦DEDECMS 5.7中,如何使用LOOP标签来调用文档地址arcurl?

核心问题解析

1、问题概述

DEDECMS5.7的LOOP万能循环标签在调用文章链接(即arcurl)时,无法直接解析出[field:arcurl/]标签,导致无法正常显示文章链接。

官方论坛没有提供现成的解决方案,因此需要通过编写自定义代码来解决。

2、解决方案

打开Include/common.func.php文件,找到第54行,添加一个自定义函数IDReturnURL,该函数的作用是根据文章ID获取完整的文章链接。

在模板中,使用自定义函数来替代原本的[field:arcurl/]标签。

具体步骤

1、添加自定义函数

打开Include/common.func.php文件。

找到第54行并在其后添加以下代码:

     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、修改模板调用方式

在模板文件中,将原本的[field:arcurl/]标签替换为自定义函数的调用方式。

     {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标签中使用,可以这样写:

在织梦DEDECMS 5.7中,如何使用LOOP标签来调用文档地址arcurl?

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

示例代码详解

1、自定义函数

function IDReturnURL($ID):定义一个名为IDReturnURL的函数,接受一个参数$ID,表示文章的ID。

global $dsql;:声明全局变量$dsql,用于执行数据库查询。

$query:定义SQL查询语句,从dede_archives表中获取文章的信息,并与dede_arctype表进行左连接。

$row = $dsql>GetOne($query);:执行查询并获取结果。

$ReturnURL:调用GetFileUrl函数生成文章的完整链接。

return $ReturnURL;:返回生成的文章链接。

2、模板调用

{dede:loop table='dede_archives' sort='' row='4' if=''}:使用LOOP标签循环调用dede_archives表的数据,每页显示4条记录。

<li>·<a href='[field:id function=IDReturnURL(@me)/]'>[field:title function=cn_substrR(@me,44)/]</a></li>:在循环体内部,使用自定义函数IDReturnURL根据文章ID生成文章链接,并显示文章标题。

3、自定义SQL标签

[field:id runphp='yes']:启用PHP运行模式。

$arcRow=GetOneArchive(@me);:根据当前记录的ID获取文章信息。

@me=$arcRow['arcurl'];:将文章链接赋值给当前记录。

在织梦DEDECMS 5.7中,如何使用LOOP标签来调用文档地址arcurl?

[/field:id]:结束PHP运行模式。

FAQs

1、如何在首页调用文章链接?

可以在首页模板文件中使用上述方法,结合LOOP标签和自定义函数,实现文章链接的调用,确保模板文件正确引入了自定义函数。

2、如何在不同页面显示不同数量的文章?

可以在LOOP标签中设置不同的row参数,例如row='4'表示每页显示4条记录,可以根据需求进行调整。

3、如何调用其他字段的信息?

在自定义函数中,可以根据需要调整SQL查询语句,获取其他字段的信息,在模板调用中,使用相应的字段名称即可。

通过以上步骤,可以在DEDECMS5.7中成功调用文档地址arcurl,实现更加灵活和丰富的内容展示,希望这些方法能够帮助你解决在DEDECMS5.7中调用文章链接的问题。

下面是一个使用表格来展示如何在织梦DEDECMS5.7中使用LOOP标签调用文档地址(arcurl)的方法:

序号 LOOP标签 描述 示例
1 {dede:arclist} 获取文档列表 {dede:arclist arcurl='true'}
2 {dede:arclist arcurl='true'} 获取文档列表,同时返回文档地址 {dede:arclist arcurl='true'}
3 {dede:arclist arcurl='true' type='image'} 获取文档列表,同时返回文档地址,且仅显示图片 {dede:arclist arcurl='true' type='image'}
4 {dede:arclist arcurl='true' titlelen='30'} 获取文档列表,同时返回文档地址,并限制标题长度 {dede:arclist arcurl='true' titlelen='30'}
5 {dede:arclist arcurl='true' infolen='100'} 获取文档列表,同时返回文档地址,并限制信息长度 {dede:arclist arcurl='true' infolen='100'}
6 {dede:arclist arcurl='true' orderby='id'} 获取文档列表,同时返回文档地址,并按ID排序 {dede:arclist arcurl='true' orderby='id'}
7 {dede:arclist arcurl='true' row='10'} 获取文档列表,同时返回文档地址,并限制每页显示数量 {dede:arclist arcurl='true' row='10'}
8 {dede:arclist arcurl='true' pagesize='10'} 获取文档列表,同时返回文档地址,并设置分页每页显示数量 {dede:arclist arcurl='true' pagesize='10'}
9 {dede:arclist arcurl='true' pagesize='10' listitem='news'} 获取文档列表,同时返回文档地址,并设置分页每页显示数量及文档类型 {dede:arclist arcurl='true' pagesize='10' listitem='news'}
10 {dede:arclist arcurl='true' listtemp='templet'} 获取文档列表,同时返回文档地址,并设置列表模板 {dede:arclist arcurl='true' listtemp='templet'}

表格中的示例仅供参考,具体使用时请根据实际情况进行修改。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1192921.html

(0)
未希的头像未希新媒体运营
上一篇 2024-10-09 15:40
下一篇 2024-10-09 15:40

相关推荐

  • 如何在dedeCMS封面模板中显示特定栏目的文章总数?

    在DedeCMS中,要统计栏目下的文章总数并显示在封面上,可以使用以下步骤:,,1. 打开include/arc.archives.class.php文件。,2. 找到GetTotalNum()方法,该方法用于获取文章总数。,3. 在该方法中添加一行代码来获取指定栏目ID的文章总数。,4. 保存文件并重新生成页面。,,以下是示例代码:,,“php,function GetTotalNum($lid) {, global $dsql;, $row = $dsql˃GetOne(“SELECT count(*) as total FROM #@__archives WHERE cid=”.$lid);, return $row[‘total’];,},“,,这只是一个示例代码,具体实现可能因DedeCMS版本和配置而有所不同。确保在实际使用前进行测试和验证。

    2024-09-30
    010
  • 如何在DEDECMS中设置自动隐藏未填写作者和来源的文章标签?

    当文章未填写作者与来源时,DEDECMS将自动隐藏相关标签。

    2024-10-18
    014
  • 如何在DEDEcms手机网站中实现详情内页的上一页/下一页翻页功能?

    要在DEDEcms手机网站添加详情内页的上一页/下一页翻页功能,你可以在内容模板中添加以下代码:,,“html,上一页,下一页,“,,这样,当用户访问详情内页时,将显示上一页和下一页的链接,实现翻页功能。请确保在后台设置中启用了分页功能,并正确配置了分页参数。

    2024-09-03
    017
  • 如何在DedeCMS中有效调用自定义字段?

    在DedeCMS中,自定义字段的调用可以通过以下代码实现:,,“php,{dede:field name=’字段名’/},“,,将上述代码嵌入到模板文件中需要显示自定义字段内容的位置,字段名”替换为实际的自定义字段名称。这样,DedeCMS会自动解析并输出该字段的值。请确保在使用该代码前已经正确配置和添加了自定义字段。

    2024-10-09
    07

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

免费注册
电话联系

400-880-8834

产品咨询
产品咨询
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购  >>点击进入