dedecms v5.6列表页标签dede:list按权重排序标签
196
2022-08-10
彻底解决织梦按权重排序的问题
织梦排序对网站来说一直存在问题,默认是按照最新发布时间排序。这样排序有个问题,一旦更新之后即被视为最新发布,于是原本做好的排序瞬间就乱了。
这种时候,按权重排序是个很好的选择,但按权重排序到处存在BUG~。
要解决权重排序的问题,主要集中在以下几个文件上:
/include/arc.freelist.class.php 自由列表对应的文件
/dede/templets/freelist_edit.htm 新增自由列表对应的文件
/dede/templets/freelist_add.htm 修改自由列表对应的文件
/include/arc.listview.class.php list列表对应的文件
/include/taglib/arclist.lib.php arclist列表对应的文件
修改的内容很简单,按照以下步骤即可修正:
1、打开/include/arc.freelist.class.php, 找到以下代码:
else if($orderby=="rand")
{
$ordersql = " ORDER BY rand()";
}
在代码下方插入以下代码后保存:
else if($orderby=="weight")
{
$ordersql = " order by arc.weight asc";
}
2、打开/dede/templets/freelist_add.htm,找到以下代码:
在代码下方插入以下代码,保存:
3、打开/dede/templets/freelist_edit.htm,找到以下代码:
echo "\r\n";
?>
在代码下方插入以下代码,保存:
4、打开/include/arc.listview.class.php,找到以下代码:
else if($orderby=="lastpost")
{
$ordersql = " ORDER BY arc.lastpost $orderWay";
}
在代码下方插入以下代码:
else if($orderby=="weight")
{
$ordersql = " order by arc.weight asc";
}
找到以下代码:
if(preg_match('/hot|click|lastpost|/', $orderby))
替换为以下代码并保存:
if(preg_match('/hot|click|lastpost|weight/', $orderby))
5、打开/include/taglib/arclist.lib.php,找到以下说明文字:
//功能:增加按好评数和差评数调用
替换为以下代码并保存:
else if($orderby == 'weight') $ordersql = " ORDER BY arc.weight asc";
//功能:增加按好评数和差评数调用
修改这5个文件,即能解决权重排序的问题(根据权重从小到大排列),并使得自由列表中,也可以采用权重排序的方式生成列表。
调用例子:
{dede:arclist flag='a' limit='0,1' typeid='10' isweight='y' orderby='weight'}
{/dede:arclist}
发表评论
暂时没有评论,来抢沙发吧~