给wordpress主题文章添加动态活动倒计时的功能

作者 : 源头网 2022-01-7 共425人阅读

给wordpress主题文章添加动态活动倒计时的功能

基于javascript实现的活动倒计时功能,可以实现动态倒计时效果,结合wordpress的短代码功能,还能实现一篇文章多个不同的活动倒计时,对于经常发布限时活动的wordpress站点会非常有用,让访客实时知道活动的剩余时间。

 

1、把下面的代码保存为countdownjs.js,保存在主题的js/目录里:

function getAdd(time){
	if(time<10){
		return "0"+time;
	}else{
		return time;
	}
}
var interval = 1000;
function ShowCountDown(year,month,day,hourd,minuted){
	var now = new Date();
	var endDate = new Date(year, month-1, day, hourd, minuted);
	var leftTime = endDate.getTime() - now.getTime();
	var leftsecond = parseInt(leftTime/1000);
	var day = Math.floor(leftsecond/(60*60*24));
	day = day < 0 ? 0 : day;
	var hour = Math.floor((leftsecond-day*24*60*60)/3600);
	hour = hour < 0 ? 0 : hour;
	var minute = Math.floor((leftsecond-day*24*60*60-hour*3600)/60);
	minute = minute < 0 ? 0 : minute;
	var second = Math.floor(leftsecond-day*24*60*60-hour*3600-minute*60);
	second = second < 0 ? 0 : second;
	var getDay = getAdd(day);
	var getHour = getAdd(hour);
	var getMinute = getAdd(minute);
	var getSecond = getAdd(second);
	if(endDate > now){
		document.getElementById('time').innerHTML = '活动倒计时:';
		document.getElementById('day').innerHTML = getDay +'天';
		document.getElementById('hour').innerHTML = getHour +'时';
		document.getElementById('min').innerHTML = getMinute +'分';
		document.getElementById('sec').innerHTML = getSecond +'秒';	
	}
}

2、把下面的代码添加到主题的functions.php文件:

function countdown($atts, $content=null) {
	extract(shortcode_atts(array("time" => ''), $atts));
	date_default_timezone_set('PRC');
	$endtime=strtotime($time);
	$nowtime=time();
	global $endtimes;
	$endtimes = str_replace(array("-"," ",":"),",",$time);
	if($endtime>$nowtime){
		return '		
		<div id="countdown">
			<span id="time"></span>
			<span id="day"></span>
			<span id="hour"></span>
			<span id="min"></span>
			<span id="sec"></span>
		</div>
		';
	}else{
		return '本次活动已经结束';
	}
}
function countdown_js() {
	global $endtimes;
	echo '<script>window.setInterval(function(){ShowCountDown('.$endtimes.');}, interval);</script>'."\n";
}
add_shortcode('countdown', 'countdown');
add_action('wp_footer', 'countdown_js');
wp_register_script( 'countdown_js', get_template_directory_uri() . '/js/countdownjs.js', array(), '1.0', false );
wp_enqueue_script( 'countdown_js' );

3、在文章编辑窗口中添加短代码:

		
活动倒计时:

其中 time=”2030-07-09 18:41:57″ 引号中的是结束时间,格式保持一致

活动倒计时:

扩展:

如果不需要短代码功能,可以把第2步的代码修改如下:

function countdown($time) {	
	date_default_timezone_set('PRC');
	$endtime=strtotime($time);
	$nowtime=time();
	global $endtimes;
	$endtimes = str_replace(array("-"," ",":"),",",$time);
	if($endtime>$nowtime){
		return '		
		<div id="countdown">
			<span id="time"></span>
			<span id="day"></span>
			<span id="hour"></span>
			<span id="min"></span>
			<span id="sec"></span>
		</div>
		';
	}else{
		return '本次活动已经结束';
	}
}
function countdown_js() {
	global $endtimes;
	echo '<script>window.setInterval(function(){ShowCountDown('.$endtimes.');}, interval);</script>'."\n";
}
add_action('wp_footer', 'countdown_js');
wp_register_script( 'countdown_js', get_template_directory_uri() . '/js/countdownjs.js', array(), '1.0', false );
wp_enqueue_script( 'countdown_js' );

然后在主题文件中添加调用代码:

<?php countdown('2022-07-09 17:29:00');?>

引号中的是结束时间格式,格式保持一致

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"58588885.com",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性
源头网 » 给wordpress主题文章添加动态活动倒计时的功能
背景