我處於一個奇怪的情況,在一個大型WordPress環境下工作,其中有很多由不同供應商開發的插件。 有一個插件,它是通過運行該行當wordpress插件退出時運行一些代碼
$default_timezone = "Australia/Darwin";
date_default_timezone_set($default_timezone);
我知道,這是錯誤的,插件應該使用改變了整個網站的默認時區
get_option('timezone_string');
然後插件的使用幾個地方
$now = new Datetime()
以獲得時間。所以對於這個特定的插件,一切正常,但是它將缺省時間設置爲Darwin,對於其他插件,current_time()函數出錯。
既然這個插件是巨大的,它現在成爲一個問題來改變它。有沒有一種方式,以便當這個插件的代碼執行時,我可以撤消它正在做的默認時區設置?
我希望我讓自己清楚!
如果您能更詳細地描述情況,這將會很有幫助。例如,這是第三方插件還是您自己的插件。如果它是你自己的,你應該修改你的代碼並使用get_option()。這個插件到底做了什麼?它是否將任何數據保存到數據庫並放下時間戳?我認爲這裏的解決方案不會像你所建議的那樣,這是由於多種原因以某種方式撤銷腳本執行後的時間設置更改。所以你應該用更多的上下文描述你的情況,然後提出可能的解決方案。 – TurtleTread
它是一家大型企業的網站。我們確實可以訪問代碼。不同的供應商不時製造不同的插件。 該插件處理一些對業務非常重要的後臺功能。 –
我認爲你應該改變代碼,特別是如果它只是在幾個設置時區的地方。如果簡單地改變加載順序,您可以將插件放在mu-plugins文件夾中,以便首先加載,然後在其後添加一個新插件並更改時區設置。 – TurtleTread