当前位置:首页 > CMS教程 > DeDecms > 列表

织梦CMS让列表页按文章的更新日期pubdate排序

发布:smiling 来源: PHP粉丝网  添加日期:2014-12-03 11:06:52 浏览: 评论:0 

dedecms文章默认排序有id,权重,热点但就是没有更新时间来了,那么我们如果想要做pubdate排序就必须要进行一些简单的修改了,下面一起来看看吧.

注意:在列表页模板,即使你指定orderby='pubdate',但实际还是不是按照pubdate排序的,通过下文可知它是按sortrank排序的.

解决办法:include/arc.listview.class.php 600行左右如下:

  1. //排序方式   
  2. $ordersql = '';   
  3. if($orderby=="senddate" || $orderby=="id") {   
  4.     $ordersql=" order by arc.id $orderWay";   
  5. }   
  6. else if($orderby=="hot" || $orderby=="click") {   
  7.     $ordersql = " order by arc.click $orderWay";   
  8. }   
  9. else if($orderby=="lastpost") {   
  10.     $ordersql = "  order by arc.lastpost $orderWay";   
  11. }   
  12. else {   
  13.     $ordersql=" order by arc.sortrank $orderWay";   
  14. }  

可以看到当$orderby为"pubdate"时,排序依据变为$ordersql=" order by arc.sortrank $orderWay";

需要修改两个地方:

修改1)接受pubdate排序方式,代码如下:

  1. //排序方式  
  2.  
  3. $ordersql = '';   
  4. if($orderby=="senddate" || $orderby=="id") {   
  5.     $ordersql=" order by arc.id $orderWay";   
  6. }   
  7. else if($orderby=="hot" || $orderby=="click") {   
  8.     $ordersql = " order by arc.click $orderWay";   
  9. }   
  10. else if($orderby=="lastpost") {   
  11.     $ordersql = "  order by arc.lastpost $orderWay";   
  12. }   
  13. // add by redice   
  14. // fix "order by pubdate" bug   
  15. else if($orderby=="pubdate")   
  16. {  //开源软件:phpfensi.com 
  17.     $ordersql = "  order by arc.pubdate $orderWay";   
  18. }   
  19. // end add   
  20. else {   
  21.     $ordersql=" order by arc.sortrank $orderWay";   

修改2)直接查询archives表,查询arctiny虽然快,但是可惜arctiny表没有pubdate字段,修改include/arc.listview.class.php 650行左右,代码如下:

  1. if(ereg('hot|click|lastpost|pubdate',$orderby))   
  2. {   
  3. ...   
  4. }   
  5. //修改为 
  6. if(ereg('hot|click|lastpost',$orderby)) //   
  7. {   
  8. ...   
  9. }

Tags: 织梦CMS文章排序 pubdate排序

分享到: