织梦dedecms调用随机文章并定时自动更新转子

时间:2022-04-15 06:00:03

织梦cms有一个调用随机文章的功能,既然是随机文章,个人认为就应该让它实时按照某个条件去变化,比如给它定个时间,亦或是刷新一次变一次,这才符合“随机”这个词。

当然了,这只是个人想法而已,而且这个“定时刷新”让首页经常变化这也是利于seo的。譬如:你没有时间更新网站,使其长时间处于停更状态,那么搜索引擎蜘蛛便懒得来了,它是这么想得:"每次都是一样的东西,我还来干嘛,我好累,更新了再说吧!"。这就不太好了得不偿失。

分析

织梦静态化以后,如果不重新生成,它是不变的,那么这个时候就需要用到php页面来执行了,但是静态页面又不能使用php功能,那又要用到js来引入php文件,才能行得通。废话不多说,直接上菜。

实现定时刷新功能

在plus目录下新建一个名为autoupdate.php的php文件写入一下代码:

<?
$updatetime = 1800;//自动更新时间,单位为秒,这里我设为一小时,大家可以自行更改。
$fpath = "../data/update_time.inc";//记录更新时间文件,如果不能达到目的,请检查是否有读取权限。
include( $fpath );
if(empty($last_time)){
	$last_time = 0;
}
if((time()-$last_time)>=$updatetime )
{
	define('DEDEADMIN', ereg_replace("[/\\]{1,}",'/',dirname(__FILE__) ) );
	require_once(DEDEADMIN."/../include/common.inc.php");
	require_once(DEDEINC."/arc.partview.class.php");
	$templet = "xunmzy/index.htm";//这里是首页模板位置,当前是dede默认首面位置。
	$position = "../index.html";
	$homeFile = dirname(__FILE__)."/".$position;
	$homeFile = str_replace("\\", "/", $homeFile );
	$homeFile = str_replace( "//", "/", $homeFile );
	$pv = new PartView();
	$pv -> SetTemplet( $cfg_basedir.$cfg_templets_dir."/".$templet );
	$pv -> SaveToHtml( $homeFile );
	$pv -> Close();
	$file = fopen( $fpath, "w");
	fwrite( $file, "<?php\n");
	fwrite( $file,"\$last_time=".time().";\n");
	fwrite( $file, '?>' );
	fclose( $file );
}
?>

然后在首页插入一下js:

<script src="/plus/autoupdate.php" type="text/javascript"></script>

最后重新生成首页,做完这些就完成了调用随机文章并定时自动更新

原文地址:http://www.xunmzy.com/technical/324.html