dedecms5.7版本中我们在发表文章的时候可以看见有个权重值,但是很多人用orderby=’weight’调用的时候却不起作用。
这是为什么呢?下面给大家讲讲解决方法。
我们在使用dedecms发部文章的时候,经常希望文章可以按我们的需求来进行排序。这个时候就需要用到文章的权重值了,如下图所示:
但是当我们在dede:arclist标签中使用orderby=’weight’来排序时,发现文章显示并没有起作用。我们在include\taglib下找到文件arclist.lib.php 打开来看一下代码。
在代码的第74-75行,我们发现$isweight默认为N,所以我们在使用orderby=’weight’ 时需要在前面加上 isweight=”Y” 来开启权重的使用。也可以加上orderway=’asc’或orderway=’desc’来限定排序的方式是升序还是降序
好的这样改了之后dede:arclist中就可以按权重来排序了。但是我们在栏目列表页使用dede:list还是无法按权限排序。这是因为dede:list标签并为加入按weight排序的方法。我们在include下面找到arc.listview.class.php打开
我们搜索关键字“排序方式”,找到如下代码段,一般在727行左右。然后加入下图绿框里面的代码。即:
else if($orderby == “weight”) {
$ordersql = ” order by arc.weight $orderWay”;
}