正在读取数据,页面载入中,请稍后...

站长强迫症来了:织梦列表按最新发布时间排序的方法

玩织梦的都知道,senddate是入库时间,pubdate是发布时间,那么,织梦列表按pubdate最新发布时间排序,这个想法着实是有些站长的强迫症了。今天一客户找我改,那必须是要帮她整好呀!研究五年的织梦,投入了半个青春,连这点都不会改,真的是皮不可奈。我还是那句话,想直接上教程。

①、打开list_artcile.htm列表模板,先改模板调用标签,看看是不是你想要的效果,不是的话就可以不用继续往下看了。

{dede:list pagesize='20' orderby='pubdate' orderway='desc'}
模板代码省略
{/dede:list}

注:orderway='desc'是倒序,orderway='asc'是升序,orderby='pubdate'是按发布时间排序。

②、打开/include/arc.listview.class.php 搜索

else if($orderby=="hot" || $orderby=="click") {

在它上面敲个回车,在它上面加入

else if($orderby=="pubdate") {
    $ordersql = " ORDER BY arc.pubdate $orderWay";
}

继续搜索

if(preg_match('/hot|click|lastpost|weight/', $orderby))

改为

if(preg_match('/hot|click|lastpost|weight|pubdate/', $orderby))

简单的两步就算是完成了,但是站长强迫症又来了,想后台点击我要获取当前最新时间,想发布文章,想编辑文章时,我都要更新最新时间,好嘛,那就继续往下整。

③、打开/dede/archives_do.php 搜索

else if($dopost=="viewArchives")

在它上面敲个回车,在它上面加入

else if($dopost=='Detimeives')
{
   $nowtime = GetMkTime(GetDateTimeMk(time()));//获取当前时间
   $aid = $_REQUEST['aid'];
   if (!empty($aid)){
   $dsql->ExecuteNoneQuery("UPDATE `#@__archives` SET pubdate='{$nowtime}' WHERE id='{$aid}'");
   ShowMsg("更新文章时间成功!",$ENV_GOBACK_URL);exit();
   }else{
   ShowMsg("更新文章时间失败!",$ENV_GOBACK_URL);exit();
   }
}

④、打开/dede/templets/article_edit.htm 搜索 更新时间 如果代码是

$nowtime = GetDateTimeMk($arcRow['pubdate']);

需改为

$nowtime = GetDateTimeMk(time());

默认的是不需要改,但有百分之九十的站长,可能都改为GetDateTimeMk($arcRow['pubdate'])了,所以,还原一下就好了。

⑤、打开/dede/templets/content_list.htm 搜索

<td>{dede:field.senddate function='GetDateMk(@me)'/}</td>

改为

<td>{dede:field.pubdate function='GetDateTimeMK(@me)'/}<br><a href="archives_do.php?aid={dede:field.id/}&dopost=Detimeives">更新为当前时间</a></td>

站长强迫症来了:织梦列表按最新发布时间排序的方法 - 全民博客

这样就完成了,修改非常的方便,当懒到了一定的高度,就想只要点击一下按钮,就能获取更新为当前时间,并不需要手动编辑修改文章。当然,想要在前台看到效果,还要在后台一键更新网站HTML才能看到效果哦。当然,orderby是排列顺序条件,你可以根据你的需求修改文档任何属性排序。

本文结束

评论专区

发表评论

评论列表(无评论)