欢迎来到虎哥的SEO日志,本人致力于网站优化,SEO,网络推广,网络营销,网站建设的研究与服务。详情请致电:15605416416.

dedecms 文章按权重排序问题

网站建设 济南SEO 2239℃ 0评论

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打开。

打开后我们搜索关键字“排序方式”,找到如下代码段,一般在771行左右。然后加入下图绿框里面的代码。即:

else if($orderby == “weight”) {

$ordersql = ” order by arc.weight $orderWay”;

}

接着我们往下拉找到下面代码段,加了刚才的代码之后大概在812行左右。在lastpost后面加上weight,如下图所示。

qq%e6%88%aa%e5%9b%be20161109170917

好的,现在就可以在dede:list标签中使用权重来排序了,我的调用代码如下图:

大家可根据自己得实际情况来调整各个参数。isweight=’Y’与orderby=’weight’必须保留外,其他看自己情况吧。

到这里,大家是不是觉着已经结束了呢?

但是在我实际测试中发现排序没有任何问题了,完全是按权重来的。但是,权重在后台却无法修改。好吧,这个确实是个大坑。。。。

接下来就是来找为什么不能在后台修改权重值了。

首先找到dede目录下的 album_edit.php 第 172行左右,如下图:

你会发现源代码里面没有关于权重值的更新呢。我们来自己添加上weight=’$weight’ ,如图红框内的内容:

至此,权重排序与后台无法修改权重值的问题全部解决了。去后台测试修改权重值,生成静态页面,完全达到预期目的。

转载请注明:虎哥的SEO日志 » dedecms 文章按权重排序问题

喜欢 (3)or分享 (0)

您必须 登录 才能发表评论!