最近<WP 3.x互換プラグインを書くことの重要性は何ですか?


8

私は現在、カスタムポストといくつかの関数を含むシンプルなプラグインを作成しています。ポストメタデータを使用し、データベースの「オプション」テーブルにいくつかの変数を追加しています。調査中、WP Codexで、プラグインをWP 3.xより前のバージョンと下位互換にすることについていくつかの参照を見つけましたが、その互換性を組み込むことが今どれだけ重要であるかを考えていました。

たとえば、(クライアントによって)インストールされたWPの最も古いバージョンは3.2、またはその近くにありました。3.xより古いものを持っている多くの人を想像することはできませんが、私は間違っている可能性があります。理論的には常に完全に互換性を保つように努めるべきだと知っていますが、現実的には、その機能を含めることがどれほど重要であるかを誰かが知っていますか?

ありがとう


5
3.XでXを定義してください。WordPressバージョン管理スキーマでは、XYメジャーバージョンです。したがって、3.0は3.1よりもメジャーではありません。また、この質問は、具体的な専門知識に基づく回答ではなく、意見や議論を求める可能性が高いため、おそらく、執筆時点のWPSEには適していません。
チップベネット

1
2.9以降のWPが大幅に変更されたことを読んだと思ったので、それが私の意図したことです。明確にできる場合は、自由に編集してください:)
Mike Stumpf 2013

回答:


10

常に現在のバージョンのプラグインを作成し、今後のバージョンからのナイトリービルドを念頭に置いてください。他は何でも構いません。

@toschoがコメントで指摘したように編集

それはなぜに必要ないくつかの説明があるかもしれませんそのように。

  1. だって私がそう言うのだから。
  2. プラグインがコアに準拠している必要があるのは、すべてがルールを操作しても、何も失敗しないためです。1つのプラグインがルールで動作しない場合は、バグがあります。そして、そのバグは修正する必要があり、他のものや他のプラグインやテーマは必要ありません。
  3. ユーザーがWordPressを更新しないのは、使用されているバグの多いプラグインの結果であり、多くの作業なしにシステムで放棄することはできません。(2)に書かれているように、それはあなたが気にする必要のないバグです。バグは修正する必要がありますが、サードパーティのコードの破損を考慮したプラグインではありません。
  4. レガシーコードはサポートを必要としません。交換が必要です。あなたの問題ではありません。
  5. XXのメジャーバージョンに比べて、状況は大きく変化します。以前のバージョンをサポートしようとすると、多くの場合、さまざまな回避策と多くのバージョンチェックが必要になります。つまり、(a)メンテナンスの悪夢(b)コードベースが増える(c)ユニットテストを1つのバージョンで実行する必要があるため、ユニットテストを不可能にする-それ以上ではなく、最後に(d)サーバーのディスク容量とパフォーマンスを(ほとんどの場合)。
  6. WordPressにはすでに非常に古いコードベースがあり、エッジやコーナーの多くに改善が加えられていません。つまり、WordPressは古く、サポートされていないPHPバージョンを最低限として使用しているため、アプリケーションのパブリックAPIよりもはるかに低いレベルで以前のバージョンを既にサポートしています。

自問してみてください:

サポートされなくなったPHPバージョンをすでにサポートしている場合、その作成者によってもサポートされていないアプリケーションをサポートしたいのはなぜですか?


回答に説明を追加してください:なぜですか?
fuxia

ニース:)それは意味のあることです。ご協力ありがとうございます
マイク・スタンプ2013

5

WordPress 3.0のリリースにはPHP5が必要であることを思い出してください。当時、多くのホスティング会社はまだサーバー上でPHP5を実行していませんでした。そのため、ホスティング会社がサーバーを最新の状態にしていないために、一部のWordPressサイトがWordPress 3.0に更新できない期間がありました。

WordPress 3.0のリリースから何年も経ち(3以降)、WordPress <3.xとの下位互換性はあまり一般的なプラグインではありません。


わかりませんでした。しかし、それは非常に理にかなっています。ありがとう!
Mike Stumpf 2013

5

ほとんどのWordPressインストールは古くなっています。現在、すべてのインストールの5.2%のみが最新リリース3.6で実行されています。
27.3%はバージョン3.0のままです。

互換性のあるコードでこれらの古いバージョンをサポートする必要があると思うかもしれません。しかし、その影響について考えてみましょう。

  • 正式にサポートされているすべてのバージョンをテストする必要があります。
  • 3.5で大幅に変更されたメディアアップローダーのような互換性のないAPIを処理する必要があります。
  • WordPressはまだ機能するため、アップグレードしなくても大丈夫だとユーザーに思わせる。
  • 同じことを行うためのサポートには、より多くのコード、より多くのテスト、そしてより多くの時間が必要です。

そして、これらのユーザーはおそらく新しいプラグインが自分のサイトを壊すことを知っているので、おそらくあなたのプラグインさえインストールしないでしょう。市場でのリーチに関しては、下位互換性のあるコードで少し勝てるかもしれません。効率の面であなたは失う。


ご協力ありがとうございます。そのチャートについては触れませんでした。これは素晴らしいリソースです。あなたが言ったことは意味があります。
Mike Stumpf 2013

4

私が作成するプラグインの私の経験則は、現在のバージョンから1を引いたものをサポートすることです。そのため、作成するすべてのプラグインは3.6.xおよび3.5.xと互換性があります。特定のプラグインは以前のバージョンで動作する可能性がありますが、問題が発生した場合の保証もサポートもしません。


3

4か月前に、人気のあるプラグインのメンテナンスを引き継ぎました。作業を始める前は、プラグインは2年間更新されていませんでした。私はたくさんのバグ修正を行い、新しいバージョンをリリースしました。2日後、彼のサイトで新しいバージョンが死の真っ白なスクリーンを引き起こしたと言った男から連絡がありました。調べたところ、彼はまだWordPress 2.9.2を実行しており、私のアップデートでは3.0で導入されたhome_url関数を使用していました。彼がWordPressのインストールを3年間更新していなかったのに、なぜこのプラグインをすぐに更新することにしたのか、私にはわかりません。新しいバージョンを作成したとき、WordPress 2.9.2をテストすることは考えていませんでした。

これがこの話の教訓です。プラグインのreadme.txtファイルでは、ヘッダーに「少なくとも必要」のバージョン番号があります。これを使って。更新を行う際に、古いバージョンをテストしたくない場合は、増分してください。これは、WordPressインストールの更新を拒否するユーザーがプラグインを更新しないようにするためです。

現在、新しい関連プラグインを作成していますが、コアに含まれているgetid3ライブラリを使用したいため、WordPress 3.6のみにする予定です。古いコアバージョン用の新しいプラグインをリリースしたくありません。


アドバイスありがとうございます。私は3.6から行われた2、3のバージョンでテストすることを計画していましたが、@ JohnGが言及したように1つしか実行しない可能性があります。ありがとう!
Mike Stumpf 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.