2017-06-13 10 views
0

私は奇妙な状況にあり、さまざまなベンダーによって開発された多くのプラグインを持つ大きなWordPress環境で作業しています。 ワードプレスプラグインが終了したらいくつかのコードを実行します

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

が、私はこれは間違っていると、プラグインが使用している必要があることを知って、この行を実行することにより、Webサイト全体のデフォルトのタイムゾーンを変更している1つのプラグインがあります

get_option('timezone_string'); 
プラグインは、その後に使用しています

いくつかの場所

$now = new Datetime() 

時間を得るために。だから、この特定のプラグインではすべてが動作しますが、Darwinやその他のプラグインではデフォルトの時刻を設定するのはcurrent_time()関数が間違っています。

このプラグインは巨大なので、今すぐ変更するには問題になります。このプラグインのコードが実行されると、それがやっているデフォルトのタイムゾーンセットを元に戻すことができるようにする方法はありますか?

私は自分をきれいにしたいと思っています!ここで

+0

状況について詳しく説明できる場合は参考になります。たとえば、これはサードパーティのプラグインか独自のものですか?それがあなたのものなら、コードを修正してget_option()を使うべきでしょう。そして、このプラグインは正確に何をしていますか?任意のデータをdbに保存し、タイムスタンプを書き留めますか?私は、ここでの解決策は、あなたが何らかの理由で複数の理由でスクリプトの実行後に時間設定の変更を元に戻すことを提案したようなものではないと思います。だから、より多くの文脈であなたの状況を説明する必要があります。 – TurtleTread

+0

大企業のウェブサイト。私たちはコードにアクセスできます。異なるベンダーは、時々異なるプラグインを構築しています。 プラグインは、ビジネスにとって非常に重要ないくつかのバックオフィス機能を処理します。 –

+1

私はあなたがコードを変更する必要があると思う、特にそれがちょうどいくつかの場所にある場合は、タイムゾーンを設定します。単純に読み込み順序を変更する場合は、プラグインをmu-pluginsフォルダに配置して最初に読み込み、その直後に新しいプラグインを追加し、タイムゾーンの設定を元に戻すことができます。 – TurtleTread

答えて

1

はカップルのオプションがあります

  1. 日付コードがクラス内にある場合、あなたはそれを拡張することができます。カスタムデストラクタのタイムゾーンの変更を元に戻します。プラグインの代わりにクラスを使用してください。
  2. プラグインコードを自分で修正してください。もちろん、これは将来のメンテナンスを増やすでしょう。
  3. 問題をプラグイン開発者に報告してください。
  4. デフォルトに頼るのではなく、他のすべてのプラグインでタイムゾーンを明示的に指定します。

申し訳ありませんが、良いオプションはありません。

+0

はい、そうです。これらはおそらく、ここから先に進むための最良のオプションです。私はすぐに修正の可能性がある場合、ちょうど考えていたし、それを正しく修正するために多くの時間がかかる。 –

関連する問題