解決WordPress時區錯誤和前台不同的問題

解決WordPress時區錯誤和前台不同的問題

資源介紹參數
資源類別: WordPress技巧
如遇問題: 聯繫客服/留言反饋
釋放雙眼,帶上耳機,聽聽看~!

WordPress的預設時區是UTC格林威治時間。如果要變更時區,你可以在後台的常規設置中選擇自己的時區。這裡以北京時間為例,我們可以選擇設置時區為上海。但是在將WordPress時區調整為上海UTC+8後,前台佈景主題時間顯示均還是UTC時間,與北京時間仍有8小時的時差,而後台文章發布時間是正確的。也就是說後台的時區設置對前台佈景主題不起效果。我也查找試過很多網上說的方法,均不起作用。以下是剛開始使用且無效的方法,可能你找到的方法也都是這些:

方法一、修改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');

以上三種方法按順序我均試過無效,最後我想到了問題的根源可能是timestamp函式有時差沒解決所造成的,於是立即打開wordpress 4.2.2版本的/wp-includes/functions.php文件檢視,最後我找到了解決WordPress時區錯誤問題的最終解決方法。以下是時區錯誤的具體修改方法:

打開/wp-includes/functions.php文件,找到第65-66行將以下代碼:

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

修改為:

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即可,網站後台也需設置時區為上海UTC+8。在使用此方法前,建議先嘗試以上所說的方法一、方法二,如果無效就再用我說的方法,此方法畢竟是要修改wordpress核心程式的,今後升級有所不便,你需要做好修改記錄。

聲明:本文為原創作品,版權歸作者所有。未經許可,不得轉載或用於任何商業用途。如若本站內容侵犯了原著者的合法權益,可聯繫我們進行處理。

給TA打賞
共{{data.count}}人
人已打賞
0 條回復 A文章作者 M管理員
    暫無討論,說說你的看法吧