雷火电竞-中国电竞赛事及体育赛事平台

歡迎來到入門教程網(wǎng)!

dedecms

當(dāng)前位置:主頁 > CMS教程 > dedecms >

dede:arclist的各種屬性詳解及orderby的各種排序方法

來源:本站原創(chuàng)|時(shí)間:2021-08-05|欄目:dedecms|點(diǎn)擊:

DEDECMS制作的織夢模板進(jìn)行二次開發(fā),就離不開DEDE的dede:arclist調(diào)用文章列表,及相關(guān)的各種ORDERBY參數(shù)進(jìn)行排序。以下對DEDE的ORDERBY排序方式進(jìn)行詳細(xì)解說
1,按點(diǎn)擊量(文章閱讀量)排序(orderby='hot' 或 orderby='click'),也可通俗的理解為網(wǎng)站熱門文章
2,隨機(jī)排序   orderby='rand' 用來隨機(jī)抽取文章排序,提高一些偏門文章曝光率
3,按最后評論的時(shí)間排序 orderby='lastpost'
4,按文章得分排序,這個(gè)得分是頂踩的得分,頂越多這個(gè)分值越高 orderby='scores'
5,按文章ID排序 orderby='id',其實(shí)和下面的按文章發(fā)布時(shí)間排序是一樣的
6,按發(fā)布時(shí)間排序(orderby='sortrank' 或 orderby='pubdate' )
 
 
以上6種最常用。
新版DEDE(5.6以后)新增weight排序方式,按文章前后關(guān)系排序orderby='near'
7,按文章權(quán)重排序orderby='weight',按權(quán)重排序需要在錄入文章時(shí)候手動(dòng)調(diào)整文章權(quán)重值,并且默認(rèn)DEDE不開通按權(quán)重排序功能,需要修改arclist.lib.php,或者{dede:arclist titlelen='38' flag='h' noflag='a' isweight='y' orderby='weight'}
[[field:typelink/]][field:title/][field:pubdatefunction=MyDate('y-m-d',@me)/]
{/dede:arclist}
這樣使用,增加isweight='y'參數(shù)。
另外weight排序默認(rèn)按權(quán)重越小越靠前來排序,如需改成越大越靠前需要改動(dòng)arclist.lib.php文件,方法如下:
打開\include\taglib\arclist.lib.php
大概在572行
$orderWeight = list_sort_by($orderWeight, 'weight', 'asc');
將asc修改為desc
$orderWeight = list_sort_by($orderWeight, 'weight', 'desc');
 
 
8,按文章前后關(guān)系調(diào)用,orderby='near'
 
9,新版DEDE(5.7以后)新增goodpost,badpost按文章頂?shù)臄?shù)量,和踩的數(shù)量拍序
 
 
案例說明:
{dede:arclist typeid='4' titlelen='24' row='4' flag='p' orderby='id' orderway='asc'}
 
{/dede:arclist}
 
以上案例:從欄目編號(typeid='4')4的欄目,取4組數(shù)據(jù)(row='4'),標(biāo)題長度截取24個(gè)字符(titlelen='24'),只取包含圖片的文章(flag='p'),按文章ID排序(orderby='id'),取出來的數(shù)據(jù)按ID降序排列(orderway='asc')
 
能給orderby賦值的只能是上面列出的值,也就是說dede:arclist 標(biāo)簽只能按照上面列出的字段排序。
那怎樣才能按照自定義的字段排序呢?假如我現(xiàn)在在dede_archives表里面添加了一個(gè)字段NewField,
我想按照這個(gè)字段排序。直接這樣寫:{dede:arclist orderby='NewField' }是不行的。那應(yīng)該怎樣修改?
修改文件include/arc.listview.class.php,參考附件arc.listview.class.php(版本5.5utf8),修改如下:
1、在第560行至562行處添加如下代碼:
else if($orderby=="NewField") {
$ordersql = " order by arc.NewField $orderWay";
}
 
2、修改603行代碼,修改如下:
if(ereg('hot|click|lastpost|NewField',$orderby))
 
上面的修改在5.7utf8版本通過,其他版本類似。
 

上一篇:dedecms怎樣設(shè)置不同的頻道應(yīng)用不同的搜索頁模板

欄    目:dedecms

下一篇:DedeCMS在PHP7.0以上環(huán)境下文章頁空白的解決方法

本文標(biāo)題:dede:arclist的各種屬性詳解及orderby的各種排序方法

本文地址:http://www.jygsgssxh.com/a1/dedecms/13734.html

更多dedecms

您可能感興趣的文章

閱讀排行

本欄相關(guān)

隨機(jī)閱讀

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有