解决 wordpress 发布时间显示提前8小时的办法

  • A+
所属分类:代码审计

解决 wordpress 发布时间显示提前8小时的办法

刚刚发了一篇文章,瞅了一眼,时间显示是8小时前,什么鬼?我穿越到过去了?以前就遇到过了,不过一直懒得处理,今天就处理下吧,顺便记录下。

第一检查了仪表盘 – 设置 -常规,时区设置 都是没有问题的。

又检查了服务器的时间,也是没有问题的,谷歌了下相关的词,发现修改下文件即可。

wp-includes\functions.php 查找以下代码:

  1. function current_time( $type$gmt = 0 ) {
  2.     switch ( $type ) {
  3.         case 'mysql':
  4.             return ( $gmt ) ? gmdate( 'Y-m-d H:i:s' ) : gmdate( 'Y-m-d H:i:s', ( time() + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ) ) );
  5.         case 'timestamp':
  6.             return ( $gmt ) ? time() : time() + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS );
  7.         default:
  8.             return ( $gmt ) ? date$type ) : date$type, time() + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ) );
  9.     }
  10. }

换成:

  1. function current_time( $type$gmt = 8 ) {
  2.     switch ( $type ) {
  3.         case 'mysql':
  4.             return ( $gmt ) ? gmdate( 'Y-m-d H:i:s' ) : gmdate( 'Y-m-d H:i:s', ( time() + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ) ) );
  5.         case 'timestamp':
  6.             return ( $gmt ) ? time() : time() + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS );
  7.         default:
  8.             return ( $gmt ) ? date$type ) : date$type, time() + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ) );
  9.     }
  10. }

即可。

简单的讲就是把 wp-includes\functions.php

function current_time( $type, $gmt = 0 ) {

改成

function current_time( $type, $gmt = 8 ) {

0改成8

 

文章发表十分钟后更:

我发现这个问题还是存在,应该是缓存插件的问题...

老D

发表评论

您必须才能发表评论!

目前评论:2   其中:访客  2   博主  0

    • avatar 堕落的鱼 0

      这个应该是begin主题时间处理的问题。

      • avatar 嗯喔啊咦 0

        一看就是UTC时间,我们这里的时间都是UTC+8