WP 优化

WordPress 显示发布时间显示为8小时前的奇葩问题

2个月前 (09-23)   213

上一篇我们 WordPress 添加了让时间显示为多久以前的功能,没有看过的可以去复习下。

大胡子 WordPress 让时间显示为多久以前 如果您的站点更新比较勤快,那么就可以选择更友好的发表时间显示方式。 一般情况下我们可以看到发布新微博... 2个月前 (09-21) 237 0

然后有的小伙伴会遇到一个 WordPress 的奇葩问题,就是显示发布时间为8小时前。

这个问题非常诡异,没遇到过的可能这辈子都不会遇到,遇上的折腾来折腾去也不一定能搞定,索性发个教程出来,希望能帮助到后面遇到这个问题的人。

按照以下步骤操作

1、php.ini

先保证你的搭建的PHP环境php.ini时间为东八区:date.timezone=Asia/Shanghai

2、WordPress后台设置UTC+8

仪表盘 – 设置 – 常规,时区设置为 上海。

3、主题中设置时间

在你的主题文件functions.php中的第一个<?php字符换行插入date_default_timezone_set(PRC);

如果能通过上面的办法能解决,那是最好的,恰好我通过上面的办法依然无法解决。

这个问题很多人发过教程,并且大部分都说明了是因为插件导致的时间错乱,所以如果知道是什么插件导致的,直接禁用插件即可解决,但是由于我这问题莫名其妙的出现,所以献上最终解决办法:

把下面的代码添加到当前主题的 function 文件中即可:

if(!function_exists('cwp_set_current_timezone')){
function cwp_set_current_timezone($timezone){
if( false===stripos( $timezone,':' ) ){
$timezone_name = $timezone;
}else{
$timezone = strtolower($timezone);
$timezone = str_replace(array('utc','UTC'), '', $timezone) ;
$timezone = preg_replace('/[^0-9]/', '', $timezone) * 36;
$timezone_name = timezone_name_from_aBBR(null, $timezone, true);
if( false===$timezone_name ){
$timezone_name = timezone_name_from_abbr(null, -10* 3600, false);
}
}
if(function_exists('date_default_timezone_set')){
date_default_timezone_set($timezone_name);
return $timezone_name;
}
return false;
}
}
if(function_exists('date_default_timezone_set')){
$timezone = '+0:00';
cwp_set_current_timezone( $timezone );
}
版权声明:Jakehu 发表于 2020-09-23 20:14:49
转载请注明:WordPress 显示发布时间显示为8小时前的奇葩问题︱Jakehu

您可能感兴趣的

暂无评论

暂无评论...