WordPress PHP默认时区无效,偏差8小时的解决方法

这玩意困扰了万事屋一年多,发出的一切内容在前台显示都是8小时前,SEO也大受影响。网上常见的三种方法如下(对万事屋无效):

方法一、修改php.ini,将默认时区改成:

date.timezone = “Asia/Shanghai”

方法二、在 wp-config.php中加入:

date_default_timezone_set(‘Asia/Shanghai’);

方法三、在/wp-includes/functions.php中加入:

date_default_timezone_set('Asia/Shanghai');

最后不得不修改/wp-includes/functions.php解决这个问题:

打开/wp-includes/functions.php文件,找到第65-66行(吐槽君找到的是在75行)将以下代码:

		case 'timestamp':
			return ( $gmt ) ? time() : time() + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS );

修改为:

/*
解决主题时区错误问题
代码来源: www.meiqiantu.com
*/
		case 'timestamp':
			//return ( $gmt ) ? time() : time() + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS );
			return ( $gmt ) ? strtotime(gmdate('Y-m-d H:i:s')) : strtotime(gmdate('Y-m-d H:i:s')) + ( get_option( 'gmt_offset' ) * 3600 );

保存funtions.php文件后,去前台看看主题中的时间是否已正确。

这里还需要注意的是,用以上代码修改后,你的服务器端php.ini还需已设置为中国地域内的时区,如果原先没设置成中国时区,可以在php.ini相应位置加入:date.timezone = “Asia/Shanghai”保存并重启apache/nginx即可,网站后台也需设置时区为上海或UTC+8。

在使用此方法前,建议先尝试以上所说的方法一、方法二,如果无效就再用我说的方法,此方法毕竟是要修改wordpress核心程序的,今后升级有所不便,你需要做好修改记录。

声明:本站文章,有些原创,有些转载,如发现侵权侵请联系删除。本站所有原创帖均可复制、搬运,开网站就是为了大家一起乐乐,不在乎版权。对了,本站小水管,垃圾服务器,请不要采集,吐槽君纯属用爱发电,经不起折腾。

给TA打赏
共{{data.count}}人
人已打赏
技术宅

是吐槽君太落伍还是小米太低调?MIUI13都推出了!

2022-5-15 5:42:38

技术宅

免费时代要结束了吗?电商、通讯等多行业API接口调用收费,全面步入成熟生态

2022-5-15 16:20:23

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索