プラグインディレクトリ

WordPressプラグインディレクトリの目的は、非技術者から開発者までのすべてのWordPressユーザーが、WordPressプロジェクトの目標に一致するプラグインを安全にダウンロードできる場所を提供することです。

そのために、私たちは開発者がディレクトリにプラグインを提出するためのシンプルで透明なプロセスを確保したいと考えています。プラグインディレクトリの含まれるプロセスをより透明にするための継続的な努力の一環として、開発者ガイドラインのリストを作成しました。私たちはすべての開発者に対して公平な競争の場を作ることを目指しています。

ガイドラインを改善するための提案や質問がある場合は、[email protected]までメールを送ってお知らせください。

開発者の期待

開発者、すべてのコミットアクセスを持つユーザー、およびプラグインを公式にサポートするすべてのユーザーは、以下のガイドラインを遵守することが期待されています:

違反があった場合、プラグインまたはプラグインデータ(以前に承認されたプラグインの場合)は、問題が解決されるまでディレクトリから削除される可能性があります。プラグインデータ(ユーザーレビューやコードなど)は、違反の性質や状況のピアレビューの結果に応じて復元されない場合があります。繰り返しの違反は、著者のすべてのプラグインが削除され、開発者がWordPress.orgでプラグインをホスティングすることを禁止される可能性があります。

プラグイン開発者は、WordPress.org上の連絡先情報が最新かつ正確であることを確認する責任があります。そうすることで、プラグインチームからのすべての通知を受け取ることができます。自動返信やサポートシステムにルーティングされるメールは許可されていません。なぜなら、歴史的に人間がタイムリーにメールに対処するのを妨げるからです。

ディレクトリ内のすべてのコードは、できるだけ安全に作成されるべきです。セキュリティはプラグイン開発者の最終的な責任であり、プラグインディレクトリはこれを最善の能力で強制します。プラグインにセキュリティの問題が見つかった場合、その状況が解決されるまでプラグインは閉鎖されます。極端な場合、プラグインはWordPressセキュリティチームによって更新され、一般の安全のために配布されることがあります。

私たちは、ガイドラインの関連する解釈をできるだけ多く考慮しようとしていますが、すべての状況が明示的にカバーされることを期待するのは不合理です。プラグインがガイドラインに違反するかどうか不明な場合は、[email protected]に連絡して尋ねてください。

ガイドライン

1. プラグインはGNU一般公衆ライセンスと互換性がなければならない

GPL互換ライセンスはすべて受け入れられますが、WordPressと同じライセンスである「GPLv2またはそれ以降」を使用することを強く推奨します。すべてのコード、データ、画像—WordPress.orgでホストされているプラグインディレクトリに保存されているすべてのもの—は、GPLまたはGPL互換ライセンスに準拠している必要があります。含まれるサードパーティライブラリ、コード、画像なども互換性がなければなりません。互換性のあるライセンスの具体的なリストについては、gnu.orgのGPL互換ライセンスリストをお読みください。

2. 開発者は自分のプラグインの内容と行動に責任を持つ。

プラグイン開発者は、自分のプラグイン内のすべてのファイルがガイドラインに準拠していることを確認する唯一の責任を負います。ガイドラインを回避するために意図的にコードを書くことや、削除を求められたコードを復元することは禁止されています(#9 不正行為/不誠実な行動を参照)。

開発者は、SVNにアップロードする前に、すべての含まれるファイルのライセンス(元のソースコードから画像やライブラリまで)を確認することが期待されています。さらに、プラグインで利用されるすべてのサードパーティサービスおよびAPIの利用規約に従わなければなりません。ライブラリのライセンスやAPIの利用規約を検証する方法がない場合、それらは使用できません。

3. プラグインの安定版は、そのWordPressプラグインディレクトリページから入手可能でなければならない。

WordPress.orgが配布するプラグインの唯一のバージョンは、ディレクトリ内のものです。人々が他の場所でコードを開発することがあっても、ユーザーは開発環境ではなくディレクトリからダウンロードします。

コードを別の方法で配布し、ここにホストされているコードを最新の状態に保たない場合、プラグインが削除される可能性があります。

4. コードは(主に)人間が読めるものでなければならない。

コードをp,a,c,k,e,rの難読化機能やuglifyのmangleのような技術やシステムで隠すこと、または$z12sdf813dのような不明瞭な命名規則を使用することは、ディレクトリ内では許可されていません。コードを人間が読めないようにすることは、将来の開発者に不必要な障害を強いることになり、隠された悪意のあるコードの一般的なベクトルでもあります。

私たちは、開発者が以下のいずれかの方法でソースコードとビルドツールへの公開されたメンテナンスされたアクセスを提供することを要求します:

  • デプロイされたプラグインにソースコードを含める
  • 開発場所へのリンクをreadmeに含める

開発ツールの使用方法を文書化することを強く推奨します。

5. トライアルウェアは許可されていない。

プラグインには、支払いまたはアップグレードによってのみ利用可能な機能が含まれてはなりません。トライアル期間またはクォータが満たされた後に機能が無効化されることはありません。さらに、APIやサービスへのサンドボックスのみのアクセスを提供するプラグインもトライアルまたはテストプラグインと見なされ、許可されません。

サービス内の有料機能は許可されています(ガイドライン6:サービスウェアを参照)、ただしプラグイン内のすべてのコードが完全に利用可能である必要があります。プレミアムコードを除外するために、WordPress.orgの外部にホストされたアドオンプラグインの使用を推奨します。プラグインが開発者ツール専用であることを意図している場合は、ケースバイケースでレビューされます。

ユーザーにアドホック製品や機能をアップセルしようとすることは許可されていますが、ガイドライン11(管理体験のハイジャック)に従う必要があります。

6. サービスとしてのソフトウェアは許可されている。

外部のサードパーティサービス(例:ビデオホスティングサイト)へのインターフェースとして機能するプラグインは、支払いサービスであっても許可されています。サービス自体は実質的な機能を提供し、プラグインと共に提出されたreadmeファイルに明確に文書化されている必要があります。できれば、サービスの利用規約へのリンクを含めることが望ましいです。

許可されていないサービスおよび機能には以下が含まれます:

  • プラグインのすべての機能的側面がローカルに含まれている間、ライセンスやキーを検証するためだけに存在するサービスは許可されません。
  • プラグインから任意のコードを移動させてサービスを作成し、サービスが機能を補完しているように見せかけることは禁止されています。
  • サービスではないストアフロント。外部システムから購入される製品のフロントエンドとしてのみ機能するプラグインは受け入れられません。

7. プラグインはユーザーの同意なしにユーザーを追跡してはならない。

ユーザーのプライバシーを保護するために、プラグインは明示的かつ認可された同意なしに外部サーバーに連絡してはなりません。これは一般的に、サービスへの登録やプラグイン設定内のチェックボックスを必要とする「オプトイン」方式で行われます。ユーザーデータがどのように収集され、使用されるかについての文書は、プラグインのreadmeに含めるべきであり、できれば明確に記載されたプライバシーポリシーを含めるべきです。

禁止されている追跡のいくつかの例は以下の通りです:

  • ユーザーからの明示的な確認なしに自動的にユーザーデータを収集すること。
  • プラグイン自体の使用の要件としてユーザーを誤解させて情報を提出させること。
  • サービスに関連しない資産(画像やスクリプトを含む)をオフロードすること。
  • 外部データ(ブロックリストなど)の文書化されていない(または不十分に文書化された)使用。
  • 使用状況やビューを追跡するサードパーティ広告メカニズム。

このポリシーの例外は、Twitter、Amazon CDNプラグイン、またはAkismetのようなサービスとしてのソフトウェアです。それらのサービスを利用するプラグインをインストール、アクティブ化、登録、設定することにより、同意が与えられます。

8. プラグインはサードパーティシステムを介して実行可能なコードを送信してはならない。

文書化されたサービスからコードを外部で読み込むことは許可されていますが、すべての通信はできるだけ安全に行われなければなりません。サービスとして機能しないプラグイン内で外部コードを実行することは許可されていません。例えば:

  • WordPress.org以外のサーバーからプラグイン、テーマ、またはアドオンを更新またはインストールすること。
  • 同じプラグインのプレミアムバージョンをインストールすること。
  • フォントのインクルード以外の理由でサードパーティCDNを呼び出すこと;サービスに関連しないすべてのJavaScriptおよびCSSはローカルに含める必要があります。
  • サービスの利用規約で明示的に許可されていない場合、定期的に更新されるデータのリストを管理するためにサードパーティサービスを使用すること。
  • 管理ページを接続するためにiframeを使用すること;APIを使用してセキュリティリスクを最小限に抑えるべきです。

ソフトウェアをサイトにプッシュする管理サービスは許可されていますが、そのサービスは自分のドメインでインタラクションを処理し、WordPressダッシュボード内では処理しない必要があります。

9. 開発者とそのプラグインは、違法、不誠実、または道徳的に攻撃的な行動をしてはならない。

これは主観的でかなり広範ですが、意図はプラグイン、開発者、および企業がエンドユーザーや他のプラグイン開発者の自由と権利を悪用するのを防ぐことです。

これには(以下の例に限定されません):

  • キーワードスタッフィング、ブラックハットSEO、またはその他の方法で検索結果を人工的に操作すること。
  • プラグインを使用するサイトへのトラフィックを増やすことを提供すること。
  • レビューやサポートのために他者を補償、誤解させ、圧力をかけ、恐喝すること。
  • ユーザーが含まれる機能を解除するために支払う必要があると暗示すること。
  • 偽のレビューやサポートチケットを生成するためにアカウントを作成すること(すなわち、sockpuppeting)。
  • 他の開発者のプラグインを取り、オリジナルの作品として提示すること。
  • プラグインが法的遵守を作成、提供、自動化、または保証できると暗示すること。
  • ユーザーのサーバーやリソースを許可なく利用すること(ボットネットやクリプトマイニングの一部として)。
  • WordPress.orgコミュニティ行動規範の違反。
  • WordCamp行動規範の違反。
  • フォーラムガイドラインの違反。
  • WordPressコミュニティの他のメンバーに対する嫌がらせ、脅迫、または虐待。
  • 身元を隠すために個人情報を偽造し、以前の違反に対する制裁を回避すること。
  • ガイドラインの抜け穴を悪用しようとすること。

10. プラグインはユーザーの許可なしに外部リンクやクレジットを公開サイトに埋め込んではならない。

すべての「Powered By」またはクレジット表示およびプラグインコードに含まれるリンクはオプションであり、ユーザーのフロントエンドウェブサイトに表示されないことがデフォルトである必要があります。ユーザーは、利用規約や文書に埋め込まれていない明確で理解しやすい選択肢を通じて、すべてのクレジットやリンクを表示することにオプトインする必要があります。プラグインは、機能するためにクレジットやリンクを表示することを要求してはなりません。サービスは、自分たちの出力を好きなようにブランド化することが許可されていますが、コードはサービス内で処理され、プラグイン内では処理されない必要があります。

11. プラグインは管理ダッシュボードをハイジャックしてはならない。

ユーザーは、プラグインがWordPressの一部のように感じることを好み、期待しています。不要な警告で管理ダッシュボードを圧倒することは、この体験を損ないます。

アップグレードのプロンプト、通知、警告などは、範囲を制限し、控えめに使用する必要があります。プラグインの設定ページのみで文脈的に使用するか、サイト全体の通知や埋め込まれたダッシュボードウィジェットは必ず解決されたときに閉じるか自己閉じる必要があります。エラーメッセージや警告には、状況を解決する方法に関する情報を含め、完了したときに自動的に消える必要があります。

WordPressダッシュボード内での広告は避けるべきです。なぜなら、一般的に効果がないからです。ユーザーは通常、問題を解決しようとしているときに設定ページを訪れます。プラグインの使用を難しくすることは、一般的に良いレビューを促進しません。したがって、そこに配置された広告を制限することを推奨します。覚えておいてください:これらの広告を介して紹介を追跡することは許可されていません(ガイドライン7を参照)し、ほとんどのサードパーティシステムはバックエンド広告を許可していません。広告システムのガイドラインを悪用することは、開発者が上流に報告される結果になります。

開発者は、自分のサイトやソーシャルネットワークへのリンクを含めることを歓迎し、奨励されます。また、プラグイン内でその体験を向上させるために画像を含めることも奨励されます。

12. WordPress.orgの公開ページ(readmes)はスパムを含んではならない。

公開ページ、readmesや翻訳ファイルを含む、はスパムに使用されてはなりません。スパム行為には(以下に限定されませんが)不要なアフィリエイトリンク、競合プラグインへのタグ、合計5つを超えるタグの使用、ブラックハットSEO、キーワードスタッフィングが含まれます。

プラグインの使用に必要な製品(テーマや他のプラグインなど)へのリンクは、適度に許可されています。同様に、関連製品はタグで使用できますが、競合製品は使用できません。プラグインがWooCommerce拡張である場合、「woocommerce」タグを使用できます。ただし、プラグインがAkismetの代替である場合、その用語をタグとして使用することはできません。タグや特定の用語の繰り返し使用はキーワードスタッフィングと見なされ、許可されません。

readmesは人間のために書かれるべきであり、ボットのためではありません。

すべての場合において、アフィリエイトリンクは開示され、アフィリエイトサービスに直接リンクする必要があります。リダイレクトや隠されたURLではありません。

13. プラグインはWordPressのデフォルトライブラリを使用しなければならない。

WordPressには、jQuery、Atom Lib、SimplePie、PHPMailer、PHPassなどの便利なライブラリが含まれています。セキュリティと安定性の理由から、プラグインはこれらのライブラリを自分のコードに含めることはできません。代わりに、プラグインはWordPressにパッケージされたこれらのライブラリのバージョンを使用しなければなりません。

WordPressに含まれるすべてのJavaScriptライブラリのリストについては、WordPressによって含まれ、登録されたデフォルトスクリプトを確認してください。

14. プラグインへの頻繁なコミットは避けるべきである。

SVNリポジトリはリリースリポジトリであり、開発リポジトリではありません。すべてのコミット(コードまたはreadmeファイル)は、プラグインに関連付けられたzipファイルの再生成をトリガーします。したがって、デプロイメントの準備が整ったコード(安定版、ベータ版、RCを含む)のみをSVNにプッシュする必要があります。各コミットに説明的で情報的なメッセージを含めることを強く推奨します。「更新」や「クリーンアップ」のような頻繁な「ゴミ」コミットメッセージは、他の人が変更を追跡するのを難しくします。プラグインのマイナーな側面(readmeを含む)を微調整するだけの複数の迅速なコミットは、システムに不当な負担をかけ、最近更新されたリストを操作していると見なされる可能性があります。

例外として、readmeファイルが最新のWordPressリリースのサポートを示すためだけに更新される場合があります。

15. プラグインのバージョン番号は、新しいリリースごとに増加しなければならない。

ユーザーは、プラグインのバージョンが増加したときにのみ更新の通知を受け取ります。trunk readme.txtは常にプラグインの現在のバージョンを反映する必要があります。タグ付けに関する詳細については、タグ付けに関するSVNの指示およびreadme.txtの動作をお読みください。

16. 提出時に完全なプラグインが利用可能でなければならない。

すべてのプラグインは承認前に検査されるため、zipファイルが必要です。名前は将来の使用のために「予約」することはできず、ブランドを保護することもできません(#17:ブランドを尊重する)。使用されていない承認されたプラグインのディレクトリ名は、他の開発者に与えられる可能性があります。

17. プラグインは商標、著作権、プロジェクト名を尊重しなければならない。

プラグインスラッグの唯一のまたは初期の用語として商標や他のプロジェクトを使用することは禁止されています。法的所有権/代表の証明が確認できない限り。例えば、WordPress財団は「WordPress」という用語を商標登録していますが、ドメイン名に「wordpress」を使用することは違反です。このポリシーはプラグインスラッグにも適用され、他の製品の用語で始まるスラッグは許可されません。

例えば、Super Sandboxの従業員のみが「super-sandbox」というスラッグを使用するべきであり、または「Super Sandbox Dancing Sloths」のような文脈で自社のブランドを使用するべきです。非従業員は、「Dancing Sloths for Superbox」のような形式を使用して、ユーザーを誤解させてSuper Sandboxが開発したと信じさせないようにするべきです。同様に、「MellowYellowSandbox.js」プロジェクトを代表しない場合、それをプラグインの名前として使用することは不適切です。

オリジナルのブランディングを推奨します。なぜなら、それは混乱を避けるだけでなく、ユーザーにとっても記憶に残りやすいからです。

18. プラグインディレクトリを最善の能力で維持する権利を留保します。

私たちの意図は、できるだけ公平にこれらのガイドラインを施行することです。私たちは、全体的なプラグインの品質とユーザーの安全を確保するためにこれを行います。そのために、以下の権利を留保します:

  • …いつでもこれらのガイドラインを更新すること。
  • …ガイドラインに明示的にカバーされていない理由であっても、ディレクトリからプラグインを無効にしたり削除したりすること。
  • …開発者が問題に対処するための時間を与えるために例外を認めること、セキュリティ関連の問題も含む。
  • …新しいアクティブな開発者に代わってプラグインへの開発者アクセスを削除すること。
  • …公共の安全のために、開発者の同意なしにプラグインに変更を加えること。

その代わりに、私たちはこれらの権利を控えめに使用し、エンドユーザーと開発者の両方に対してできるだけ尊重を持って行動することを約束します。