WordPress的首页/内页显示的评论时间为8小时前的解决办法

WordPress的首页/内页显示的评论时间为8小时前的解决办法插图

最近虾皮路发现一个问题,就是首页的评论时间和内页的评论时间不一致。具体的表现是首页侧边栏调用了文章评论,加上了评论时间,如果有人点评文章后,首页显示的评论时间为8小时前的时间,而内页显示的时间是正常。这个问题有什么解决办法吗?

比如:首页显示该文章的评论时间为10:00,而内页显示的评论时间为18:00。因此,就会出现一个现象,刚评论的文章,首页的评论时间会显示为8个小时前评论的。进入内页的话时间又正常了。

当然,这不影响任何使用。但对于虾皮路这种强迫症的来说,不能忍受。

网上找了解决办法,大概如下几种:

一、SSH登陆修改时区

先用SSH连接服务器,然后使用 date 命令看下服务器时间是否正确

date

如果正确,则按照下面的方法修改时区

1、修改 php.ini的默认时区

修改 php.ini,将默认时区改成:

date.timezone = "Asia/Shanghai"

2、在wp-config.php添加时区代码

wp-config.php中加入:

date_default_timezone_set('Asia/Shanghai');

二、BT宝塔面板直接图形化修改时区

对于不喜欢用命令的小伙伴来说,可以直接登陆BT宝塔面板后台,点击 软件商店-系统工具-Linux工具箱 ,没有安装的话就先安装。

WordPress的首页/内页显示的评论时间为8小时前的解决办法插图(1)

点击 设置-时区设置

设置时区为 Asia/Shanghai

WordPress的首页/内页显示的评论时间为8小时前的解决办法插图(2)

然后保存即可。

三、修改timestamp函数

对于以上的解决办法,虾皮路都有尝试,但是没有任何效果。后来虾皮路发现有人提到修改timestamp函数即可,因为timestamp函数有时差,因此解决办法如下:

打开自己站点的路径文件 /wp-includes/functions.php,在70多行的地方找到如下代码

if ( 'timestamp' === $type || 'U' === $type ) {
		return $gmt ? time() : time() + (int) ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS );

修改为如下代码:

if ( 'timestamp' === $type || 'U' === $type ) {
		//return $gmt ? time() : time() + (int) ( 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 );

实际上就是将原代码注释掉了。然后保存,清除自己的页面缓存即可。

这个方法确实不错,成功解决了。但是因为动到了WordPress的核心文件,因此如果升级后估计还要修改。

 收藏 (0) 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

虾皮路版权所有,未经允许不得转载:虾皮路 » WordPress的首页/内页显示的评论时间为8小时前的解决办法

分享到: 更多 (0)
坚持下去不容易,打个赏呗

评论 2

  • QQ号
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1
    avatar

    强迫症?处女座?
    那我再告诉一个你网站的问题:点表情符号出现不了表情~~

    itime3周前 (09-27)国内网友谷歌浏览器 Windows 10 回复
    • 对了,你不说我都忘记了这个问题。现在已经修复了。

      虾皮路3周前 (09-28)国内网友谷歌浏览器 Windows 10 回复
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活