web-dev-qa-db-ja.com

プラグインアップグレード戦略

register_activation_hook() を読むと、wordpress 3.1では、これはすべてのプラグインのアクティブ化に対してのみ機能し、プラグインのアップグレードに対しては機能しません。

私が知りたいのは、最良のプラグインアップグレード戦略は何ですか?

私の考えは:

  1. 'admin_init'アクションで '{plugin_name} _version'オプションを確認してください
    1. '{plugin_name} _version'が存在しない場合は、以前のバージョンからのものと仮定します(そのバージョンではまだ '{plugin_name} _version'オプションがないため、プロセス2に進みます)。
    2. '{plugin_name} _version'オプションが存在し、スクリプトで設定された '{plugin_name} _version'と一致しない場合は、手順2に進みます。
    3. '{plugin_name} _version'オプションがスクリプトで設定された '{plugin_name} _version'と一致する場合、プロセスを終了します。
  2. パラメータとして '{plugin_name} _version'値を指定してプラグインアップグレード機能を起動します。
  3. このアップグレードプロセスに必要なことは何でもしてください
  4. アップグレードプロセスが完了したら、スクリプトから '{plugin_name} _version'オプションを '{plugin_name} _version'に設定します。

このプロセスについて何かコメントがありますか?

1
ariefbayu

これは最近wp-hackersリストで詳細に議論されました。これがスレッドです:

リストから引用 オットー

どこにでも使える最も簡単な方法は、プラグインのバージョン番号をどこかに保存し(データベースのオプションエントリのように)、保存されているバージョンを現在の既知のハードコードバージョンと比較することです。違いを見つけたら、それはアップグレードが行われたことを意味し、あなたはそれに応じて行動することができます。もう1つの方法は、単に古いプラグインや古いスキーマをプラグインに検出させ、それらをその場でアップグレードすることです。これはおそらく最も信頼できる方法ですが、アップグレードする内容によって異なります。必ずしもこれを「一般的」にすることはできません。

3
MikeSchinkel