wordpress插件退出时运行一些代码

时间:2017-06-13 15:23:27

标签: php wordpress datetime

我处于一个奇怪的境地,正在使用由不同供应商开发的许多插件的大型wordpress环境。 有一个插件正在通过运行此行来更改整个网站的默认时区

$default_timezone = "Australia/Darwin";
date_default_timezone_set($default_timezone);

我知道这是错的,插件应该使用

get_option('timezone_string');

然后该插件在多个地方使用

$now = new Datetime() 

得到时间。所以对于这个特定的插件一切正常,但它将默认时间设置为Darwin,而对于其他插件,current_time()函数出错。

由于这个插件很庞大,现在改变它成为一个问题。有没有办法让这个插件的代码执行时我可以撤消它正在执行的默认时区设置?

我希望自己明白!!

1 个答案:

答案 0 :(得分:1)

以下是几个选项:

  1. 如果日期代码在某个类中,则可以对其进行扩展。还原自定义析构函数中的时区更改。使用您的类而不是插件中的类。
  2. 自行修复插件代码。当然,这会增加未来的维护。
  3. 将问题报告给插件开发人员。
  4. 在所有其他插件中明确指定时区,而不是依赖默认值。
  5. 对不起,似乎没有任何好的选择。