• 全国400电话网上服务平台
    强大号码库资源任选,方便,快捷,快速开通。
    咨询热线:400-1100-266  

    织梦标签loop和sql里面的arcurl由动态变静态开发教程
    POST TIME:2021-05-23 02:37

    这是什么意思呢?我们知道在织梦系统里面标签调用时,最历害的二个标签就是loop和sql了,这两个可以调用织梦系统里面几乎任意表中的数据。

     

    下面将以loop标签为例子:

    例如:

    {dede:loop table='dede_archives' orderway='asc' row='1' if='shorttitle=1'}

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

    {/dede:loop}

    上面这个标签调用一条,条件为shorttitle=1的文章内容,是在表dede_archives里面调用的。

      但是,调用出来的结果是:<h1><a href=''>织梦教程网</a></h1>

      也就是说无论用loop 还是用sql调出来的链接都是空的,如果这样的话,这两个标签就没有意义了。

     

    所以,织梦官方这样给出这样的标签调用:

    {dede:loop table='dede_archives' orderway='asc' row='1' if='shorttitle=1'}

    <h1><a href='/plus/view.php?aid=[field:id/]' target='_blank'>[field:title/]</a><br></h1>

    {/dede:loop}

    结果是:<h1><a href='/plus/view.php?aid=1'>织梦教程网</a></h1>

    我们不希望在首页调用出来的内容是动态(动态链接是/plus/view.php?aid=1)的,这样可能对seo不好,因为,多了这个链接后,同样一篇文章可能让百度收录二次,可能让百度认为是我们作弊,懂seo都知道。

     

    现在我们的目标是把底层模板[field:arcul/]的调用,跟在标签{dede:arclist}调用出来一样,即调用出来的是静态的。

    例如,<h1><a href='www.dede58.com/php/1.html'>织梦教程网</a></h1>

    经过我的研究,既然是用loop就改他的标签源码文件: loop.lib.php

      在这个文件里面找到这样一行代码:$dsql->SetQuery("SELECT * FROM $tablename $ifcase $sort LIMIT 0,$row");

      注释掉(或删除掉)

      然后,加上下面这行代码:    

    $dsql->SetQuery("SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,
    
            tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath
    
            FROM `$tablename` arc LEFT JOIN `dede_arctype` tp on arc.typeid=tp.id
    
          $ifcase $sort LIMIT 0,$row");

      然后,

    在代码:

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

        {

    里面加上下面这行代码:

    $row['arcurl'] = 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']);

    保存!

     

      现在再来使用用标签:

    {dede:loop table='dede_archives' orderway='asc' row='1' if='shorttitle=1'}

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

    {/dede:loop}

      结果是:

    <h1><a href='www.dede58.com/php/1.html' >织梦教程网</a></h1>

    已经变成静态的了。

    如果您想使用{dede:sql}标签里面的[field:arcurl/]也变成静态的,处理方法完全一样,这里不再重复。


    
    关于我们 | 付款方式 | 建站知识 | 增值服务 | 网站模板
    Copyright © 2003-2016
    时间:9:00-21:00 (节假日不休)
    版权所有:巨人网络(扬州)科技有限公司
    总部地址:江苏省信息产业基地11号楼四层
    《增值电信业务经营许可证》 苏B2-20120278
    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信

    微信号已复制,请打开微信添加咨询详情!