某些情况下,我们需要调用昨天发布、两天前发布、某个时间段发布的文章,而织梦dedecms默认的只能够调过去X天内发布的文章,那么该如何解决这个问题呢?

打开/includeP 3 % Y v f/taglib/arclist.lib.php文件

找到:

//时间限制(用Z e F 2 ( D于调用最近热门文章、热门评论之类),这里的时间只能计算到天,否则缓存功能将无效

if($subday > 0)

{

$ntime = gmmktime(0, 0, 0, gmdate(‘m’), gmdate(‘d’), gmdate(‘Y’T t i w _ G 7 7 !));

$l\ 2 # ? * h $imitday = $ntime – ($subday * 24 * 3J = l600);

$orwheres[] = ” arc.senddate > $lJ E Nimitday “;

}

修改为:

//时间限制(用于调用最近热门文章、热门评论之类),这里的时间只能计算到天,否则缓存功能将无效

//当subday=1的时候调用1天内的文章

//当subday=2的时候调用昨天的文章

//当subday=3的时候调用2天前得所有文章

//当subdayZ u 1 ~ ; c } i=7B S G * N的时候调用7天内得所有文章

if($subday > 0)

{

if($subday == 1)

{

$ntime = gmmM ; J 8 h + 7ktime(0, 0, 0, gmdate(‘m’), gmdate(‘d’), gm1 G V a M : %date(‘Y’));O c .

$limitdayA g 9 = $ntime – ($subday * 2o # ` 8 A 2 ] f4 * 3600);

$orwheres[] =j G P z d [ p } E ” arc.senddate– h ( N > $limitday “;

}

else if ($subday == 2)

{\ u k

$ntime = gmmktime(0, 0, 0, gmdatm _ q x 8 Q ` ` Me(‘m’), gmdate(‘d’),s @ B , ] h U 9 0 gmdate(‘Y’));

$limitday = $ntime – ($subday * 24 * 3600);

$lomitday = $ntime;

$orwheres[] = ” arc.senddate < $lomitday && arc.senddatel l q > $limitday”;

}

else if ($subday == 3)

{

$ntime = gmmktime(0, 0, 0, gmdate(‘m’), gmdate(‘d’), gmdate(‘Y’));

$limitday = $ntime -($subday * 24 * 3600)+(1*24 * 36) \ 1 & ( u 900);

$orwheres[] = ” arc.senddate < $limE # _ , x ;itday “;

}

else if ($subdayw 2 @ M + == 7)

{

$ntime = gmmktime(0,k e T l G 8 m F . 0, 0, gmdate(‘m’), gmdate(‘d’), gmdate(‘Y’));

$limitday = $ntime – ($subday * 24 * 3600);

$orwheres[] = ” arc.senddate > $limitday “;

}

}

调用方法:

{dede:arclist r8 C a h Dow=10 titlelen=32 subday=’1′}

<li><a href=”http://www.dede58.com/a/dedejq/[field:arcurl/]”&4 \ W Xgt;[field:title/]</a&gt A 1 1 U , (t;</li>

{/dede:arclist}

/% 2 8 & \ p */当subday=1的时候调用1天内的文r 4 D `

//当T . – y ) ssubday=2的时候调用昨天的文章

//当subday=3的时候调用2天前得所有文章

//当subday=7的时候调用7天内得所有文章

免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用m u g r于商业用途,如果损害了您的权利,请联系网站客服处理。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注