找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 100|回复: 0

[cms教程] dedecms按文档标签(TAG)数目排序的方法

[复制链接]

该用户从未签到

发表于 2019-2-26 07:53:08 | 显示全部楼层 |阅读模式

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

×
今天AB网站模板网下午写了个dedecms的标签云效果,但是发现无论如何都不能按照sort = 'hot'进行排序(我的意思想按照包含此tag的文章数目进行降序排序),我想查看下5.5模板参考手册.发现没有模板标签参考手册只有5.3的,查看了下手册,发现手册中是这样说的:Quote:tag|TAG调用
        标签名称:tag
        功能说明:TAG调用标签
        适用范围:全局使用
        基本语法:
         
        {dede:tag sort='new' getall='0'}
        [url=[field:link/,,[field:tag /,[/url]
        {/dede:tag}
         
        相关函数:
        文件\include\taglib\tag.lib.php第4行
        function lib_tag(&$ctag,&$refObj)
        参数说明:
        row='30' 调用条数
        sort='new' 排序方式 month,rand,week
        getall='0' 获取类型 0 为当前内容页TAG标记,1为获取全部TAG标记
        底层模板字段:
        没有sort = ‘hot’ 这个属性。于是查看了下dedecms 5.3 的tag标签解析文件发现有如下几句代码:
         
        if($ltype=='rand') $orderby = ' rand() ';
        else if($ltype=='week') $orderby=' weekcc desc ';
        else if($ltype=='month') $orderby=' monthcc desc ';
        else if($ltype=='hot') $orderby=' count desc ';
        else $orderby = ' addtime desc ';
         
        这段代码就是决定排序方式的判断语句 ,因为你读着段代码上边有一句 $ltype = $sort; ,可知是把$sort的值赋给$ltype,其中这句
         
        else if($ltype=='hot') $orderby=' count desc ';
        表示sort = ‘hot’方式排序 ,从数据库中读取的时候是按照count字段进行降序排列的,然而你再查看下数据表中dede_tagindex表,发现count字段的值全部为零,不知道为何全部为零,我估计count是记录tag点击次数的。此表中还有一个字段是total,这个的值表示包含这个tag的文章数目有多少,我想有些人想按照包含tag文章数目多少来为tag排序吧,反正我是这么想的,我我认为这样对seo很有帮助,主要是dede的tag在百度中权重很高,所以我觉得可以在
         
        else if($ltype=='hot') $orderby=' count desc ';
         
        后边加
         
        else if($ltype=='num) $orderby=' total desc ';
         
        代码 ,在模板中就可以用sort=‘num’ 来进行排序,表示按照包含tag的文章数目进行排序了。
回复

使用道具 举报

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

GMT+8, 2024-11-17 18:20

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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