找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 109|回复: 0

[cms教程] DedeCMS织梦模板使likearticle标签支持排序orderby的方法

[复制链接]

该用户从未签到

发表于 2018-10-10 08:04:22 | 显示全部楼层 |阅读模式

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我们在使用DedeCMS织梦模版用于图片站WEB开发时,需要随机调用文章、图集和关联文章、图集功能,以增加用户黏度,这个也属于站内优化重要一部分。
         
        一般用标签调用都有排序orderby,默认的排序主要有:
         
        orderby='sortrank' 文档排序方式
        orderby='hot' 或 orderby='click' 表示按点击数排列
        orderby='sortrank' 或 orderby='pubdate' 按出版时间排列
        orderby='near'
        orderby='lastpost' 按最后评论时间
        orderby='scores' 按得分排序
        orderby='id' 按文章ID排序
        orderby='rand' 随机获得指定条件的文档列表
         
        但是调用文章相关文章标签{dede:likearticle}却没有orderby这个功能。今天我们想给likearticle也增加一个排序功能.
         
        方法也很简单,打开/include/taglib/likearticle.lib.php,找到以下代码(大概在第97行):
         
         
        if( empty($arcid) || $byabs==0 ) {
              $orderquery = " order by arc.id desc ";
        }
        else {
              $orderquery = " order by ABS(arc.id - ".$arcid.") ";
        }
         
        修改为:
         
         
        if($orderby=='hot' || $orderby=='click') $orderquery = " order by arc.click $orderWay";
        else if($orderby == 'sortrank' || $orderby=='pubdate') $orderquery = " orderby arc.sortrank $orderWay";
        else if($orderby == 'id') $orderquery = " order by arc.id $orderWay";
        else if($orderby == 'near') $orderquery = " order by ABS(arc.id - ".$arcid.")";
        else if($orderby == 'lastpost') $orderquery = " order by arc.lastpost $orderWay";
        else if($orderby == 'scores') $orderquery = " order by arc.scores $orderWay";
        else if($orderby == 'rand') $orderquery = " order by rand()";
        else if($orderby == 'weight') $orderquery = " order by arc.weight asc";
        else $orderquery = " order by arc.sortrank $orderWay";
         
        保存后,再在{dede:likearticle}标签中增加orderby的值即可实现按增加需要的方式进行排序
回复

使用道具 举报

网站地图|页面地图|文字地图|Archiver|手机版|小黑屋|找资源 |网站地图

GMT+8, 2024-9-29 09:32

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表