POST TIME:2017-11-30 16:06
標簽dede:arclist的排序是通過orderby來指定的,如下:
{dede:arclist orderby='排序字段' } {/dede:arclist} orderby='sortrank' 文檔排序方式 § orderby='hot' 或 orderby='click' 表示按點擊數(shù)排列 § orderby='sortrank' 或 orderby='pubdate' 按出版時間排列 § orderby='near' § orderby=='lastpost' 按最后評論時間 § orderby=='scores' 按得分排序 § orderby='id' 按文章ID排序 § orderby='rand' 隨機獲得指定條件的文檔列表 § orderby='weight' 按照權重進行排序 5.6版本新添加功能 而能給orderby賦值的只能是上面列出的值,也就是說dede:arclist 標簽只能按照上面列出的字段排序。 關于權重排序,以下來自織夢論壇 {dede:arclist row='14' titlelen='48' orderby='weight' typeid='9' idlist=''} <li><span class="title f_l"><a href="[field:filename/]" title="[field:title/]">[field:array runphp='yes'] if (@me['shorttitle']=='') @me=@me['title'];else @me=@me['shorttitle'];[/field:array]</a></span><span class="pubdate f_r">[field:pubdate function=MyDate('Y-m-d',@me)/]</span></li> {/dede:arclist} 只不過現(xiàn)在權重是按照從小到大升序排列的,而默認的文章權重和文章ID相同,所以,你要是想讓文章排到最前面,只有將權重改為負數(shù)。 但是,這跟我們平時心理上的習慣不太一樣,所以解決的辦法就是 1.首先將文檔默認權重值設為0,將dedetempletsarticle_add.htm中的 <td width="122"><input name="weight" type="text" id="weight" style="width:50px" value="<?php echo $maxWright['cc'];?>" />(越小越靠前)</td> 改為 <td width="122"><input name="weight" type="text" id="weight" style="width:50px" value="0" />(越大越靠前)</td> ; 2.在includetaglibarclist.lib.php文件中,將 else if($orderby == 'weight') $ordersql = " order by arc.weight asc";//如果沒有特定設置排序則按照權重先排序 改為 else if($orderby == 'weight') $ordersql = " order by arc.weight $orderWay , arc.sortrank $orderWay";//如果沒有特定設置排序則按照權重先排序,如果權重相等,則按照發(fā)布時間降序排列 這樣就可以按照權重從大到小進行排列了~~ 只不過同時也還面臨一個問題,就是如果在改之前你已經(jīng)發(fā)布了很多文檔,那么你現(xiàn)在更新之后列表就會是按照id的倒序進行排列了,所以有需要的話就要對以前的文章進行一個權重歸零了