プラグイン・ディレクトリ
WordPress プラグイン・ディレクトリの目的は、すべての WordPress ユーザー – 非技術者から開発者まで – が、WordPress プロジェクトの目標に沿ったプラグインをダウンロードできる安全な場所を提供することです。
そのために、私たちは開発者がディレクトリにプラグインを申請するためのシンプルで透明なプロセスを確保したいと考えています。プラグインディレクトリの掲載プロセスをより透明なものにするための継続的な努力の一環として、開発者ガイドラインのリストを作成しました。私たちはすべての開発者が公平に利用できるように努力しています。
ガイドラインを改善するための提案や、ガイドラインに関する質問がありましたら、plugins@wordpress.org
までメールでお知らせください。
開発者への期待
開発者、コミットアクセス権を持つすべてのユーザー、そしてプラグインを公式にサポートするすべてのユーザーは、以下のガイドラインに従うことが期待されています:
- プラグイン・ディレクトリ ガイドライン (本ドキュメント)
- コミュニティ ガイドライン
- フォーラム ガイドライン (フォーラム/レビューを利用するべきか)
違反があった場合、問題が解決されるまでプラグインまたはプラグインデータ (以前に承認されたプラグインの場合) がディレクトリから削除されることがあります。ユーザーレビューやコードなどのプラグインデータは、違反の内容や状況に対するピアレビューの結果によっては、復元されないことがあります。違反が繰り返されると、作者のすべてのプラグインが削除され、開発者は WordPress.org でのプラグインのホスティングが禁止される可能性があります。
プラグイン開発者の責任において、WordPress.org の連絡先情報が最新かつ正確であることを確認し、プラグインチームからのすべての通知を受け取れるようにしてください。サポートシステムへの自動返信やメールは、歴史的に人間がタイムリーにメールに対応することを妨げているため、許可されていません。
ディレクトリ内のすべてのコードは、可能な限り、安全でなければなりません。セキュリティは、プラグイン開発者の最終的な責任であり、プラグイン・ディレクトリは、可能な限りこれを実施します。プラグインにセキュリティの問題があることが判明した場合、そのプラグインは、問題が解決するまでクローズされます。極端な場合、プラグインは WordPress セキュリティチームによって更新され、一般の人々の安全のために周知されるかもしれません。
可能な限りガイドラインに関連する解釈を考慮しようとしていますが、すべての状況を明確にカバーすることを期待するのは不合理です。プラグインがガイドラインに違反するかどうか不明な場合は、plugins@wordpress.org
までお問い合わせください。
ガイドライン
1. プラグインは、GNU GPL (General Public License。一般公衆利用許諾契約書) と互換性がなければなりません
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
の難読化 (obfuscate) 機能や、uglify のマングル (mangle) 機能、あるいは $z12sdf813d
のような意味不明な命名規則に類似した技術やシステムを使ってコードを隠蔽することは、このディレクトリでは許可されていません。コードを人間が読めないようにすることは、将来の開発者に不必要なハードルを強いるだけでなく、隠された悪意のあるコードの一般的な媒介になります。
私たちは開発者に、以下のいずれかの方法で、ソースコードとビルドツールへのメンテナンスされた公開アクセスの提供を求めます:
- 配布プラグインにソースコードを含める。
- 開発場所へのリンクを readme に記載する。
開発ツールの使用方法をドキュメント化することを強く推奨します。
5. トライアルウェア (試用版) は許可されていません
プラグインには、支払いまたはアップグレードによってのみ利用可能になる、制限またはロックされた機能を含めることはできません。試用期間またはクォータを満たした後に機能を無効にできません。さらに、API やサービスへのサンドボックスのみのアクセスを提供するプラグインも、トライアル、またはテスト用のプラグインであり、許可されません。
サービスにおける有料機能は 許可されています (ガイドライン「6: サービスウェア」参照) が、プラグイン内のすべてのコードが完全に利用可能であることが条件です。プレミアムコードを除外するために、WordPress.org の外部でホストされるアドオン・プラグインの使用を推奨します。プラグインが開発者用ツールとしてのみ意図されている状況では、ケースバイケースでレビューされます。
暫定的な商品や機能をユーザーに売り込もうとすることは、ガイドラインの範囲内であれば 容認されます (「11: 管理者体験のハイジャック」参照)。
6. SaaS (Software as a Service。サービスとしてのソフトウェア) は許可されています。
外部のサードパーティサービス (例: 動画ホスティングサイト) へのインターフェースとして動作するプラグインは、有料サービスであっても許可されます。そのサービス自体が実質的な機能を提供し、プラグインと一緒に提出される readme ファイルに明確にドキュメント化されていなければなりません。できれば、そのサービスの利用規約へのリンクがあることが望ましいです。
許可されない サービスや機能は、以下の通りです:
- プラグインのすべての機能がローカルに含まれているにもかかわらず、ライセンスまたはキーの検証のみを目的として存在するサービスは、許可されません。
- プラグインから任意のコードを移動してサービスを作成し、サービスが補足機能を提供しているように見せかけることは、禁止されています。
- サービスではないストアフロント。外部システムから商品を購入するためのフロントエンドとしてのみ機能するプラグインは、認められません。
7. プラグインは、ユーザーの同意なしに追跡することはできません
ユーザーのプライバシーを保護するため、プラグインは 明示的 に許可された同意なしに、外部サーバーに接続できません。これは一般的に「オプトイン」方式で行われ、サービスへの登録やプラグイン設定内のチェックボックスを必要とします。ユーザーデータがどのように収集され、どのように使用されるかについてのドキュメントは、プラグインの readme に含まれるべきです。できれば、プライバシーポリシーが明記されていることが望ましいです。
禁止されているトラッキングの例を、いくつか挙げます:
- ユーザーの明示的な確認なしに、ユーザーデータを自動的に収集すること。
- プラグイン自体の使用要件として、意図的にユーザーを誤解させて情報を提出させること。
- サービスに関係のない (画像やスクリプトを含む) アセットをオフロードすること。
- ドキュメント化されていない (またはドキュメント化が不十分な) 外部データ (ブロックリストなど) の使用。
- 利用状況や閲覧数を追跡する、サードパーティの広告メカニズム。
このポリシーの例外は、Twitter、Amazon CDN プラグイン、Akismet などの SaaS (Software as a Service) です。これらのサービスを利用するプラグインをインストール、有効化、登録、設定することにより、これらのシステムに対する同意が付与されます。
8. プラグインは、サードパーティのシステムを介して実行可能コードを送信することはできません
ドキュメント化されたサービスからコードを読み込むことは許可されていますが、すべての通信は可能な限り安全に行われなければなりません。たとえば、サービスとして動作していないときに、プラグイン内で外部のコードを実行することは許可されていません:
- WordPress.org 以外のサーバーからプラグイン、テーマ、アドオンをインストールしたり、アップデート、その他を提供すること。
- 同じプラグインの、プレミアムバージョンのインストール。
- フォントのインクルード以外の理由でサードパーティの CDN を呼び出すこと。サービスに関連しない JavaScript と CSS は、すべてローカルに含める必要があります。
- サービスの利用規約で明示的に許可されていない場合に、定期的に更新されるデータのリストを管理するためにサードパーティのサービスを使用すること。
- 管理ページへの接続に iframe を使用すること。セキュリティリスクを最小限にするために、API を使用すること。
そのサービスが WordPress ダッシュボード内ではなく独自のドメイン上でインタラクションを処理する場合に限り、サイトと相互作用し、ソフトウェアをプッシュダウンする管理サービスは 許可されています。
9. 開発者とそのプラグインは、違法なこと、不正なこと、道徳に反することを行ってはいけません
これは主観的でかなり広範なものですが、プラグインや開発者、企業がエンドユーザーや他のプラグイン開発者の自由や権利を乱用することを防ぐ意図があります。
これには以下の例が含まれます (ただし、これに限定されるものではありません):
- キーワードの詰め込み、ブラックハット SEO、その他によって検索結果を人為的に操作すること。
- プラグインを使用しているサイトにより、多くのトラフィック誘導を提案すること。
- レビューやサポートのために他者に報酬を与えたり、誤解を与えたり、圧力をかけたり、恐喝したり、脅迫したりすること。
- 含まれている機能をアンロックするために、ユーザーが課金しなければならないと示唆すること。
- 偽のレビューやサポートチケットを作成するためにアカウントを作成すること (すなわち、ソックパペット)。
- 他の開発者のプラグインを盗用して、オリジナルの作品であるかのように見せること。
- プラグインが法令遵守を作成、提供、自動化、保証できると示唆すること。
- ボットネットやクリプトマイニングの一部など、許可なくユーザーのサーバーやリソースを利用すること。
- WordPress.org コミュニティ行動規範への違反。
- WordCamp 行動規範への違反。
- フォーラム・ガイドラインへの違反。
- WordPress コミュニティの他のメンバーに対する嫌がらせ、脅迫、虐待。
- 意図的に身元を偽り、過去の違反に対する制裁を避けるために、個人情報を改竄すること。
- ガイドラインの抜け穴を、意図的に利用しようとすること。
10. プラグインは、ユーザーの許可を明示的に得ることなく、公開サイトに外部リンクやクレジットを埋め込むことはできません
プラグインコードに含まれるすべての「Powered By」あるいはクレジット表示とリンクは、オプショナルでなければならず、デフォルトではユーザーのフロント・フェイスの Web サイトには 表示しない ようになっていなければなりません。ユーザーは、利用規約やドキュメントに埋もれることなく、明示されたわかりやすい選択肢によって、クレジットやリンクを表示することに同意しなければなりません。プラグインは、機能するためにクレジットやリンクの表示を要求できません。サービスは、コードをプラグインではなくサービス内で処理することを条件に、適切と思われるようにその出力をブランド化することが 認められます。
11. プラグインは、管理画面のダッシュボードを乗っ取るべきではありません
ユーザーは、プラグインが WordPress の一部のように感じられることを好み、期待しています。常に煩わしく、不必要なアラートで管理ダッシュボードを圧迫することは、この体験を台なしにしてしまうでしょう。
アップグレードのプロンプト、通知、アラートなどは範囲を限定し、文脈上であれ、プラグインの設定ページのみであれ、控えめに使用しなければなりません。サイト全体の通知やダッシュボードに埋め込まれたウィジェットは、解決されたときに解除または自己解除が 可能でなければなりません。エラーメッセージやアラートには、その状況を解決するための情報が含まれていなければなりませんし、完了したら自動的に削除されなければなりません。
WordPress ダッシュボード内の広告は、一般的に効果がないため避けるべきです。ユーザーは通常、問題を解決しようとしているときにしか設定ページを訪れません。プラグインを使いにくくすることは、一般的に良いレビューを促すことにはならないので、そこに掲載される広告は制限することをおすすめします。覚えておいてください: 広告を経由した紹介を追跡することは、許可されていません (ガイドライン「7」参照) し、ほとんどのサードパーティ・システムは、バックエンド広告を許可していません。広告システムのガイドラインを逸脱すると、開発者は上流に報告されることになります。
開発者は、自分のサイトやソーシャルネットワークへのリンクを含めてもかまいませんし、むしろ奨励されます。また同様に、体験を向上するためにローカルに (プラグイン内に) 画像を含めることも奨励されます。
12. WordPress.org の公開ページ (readmes) は、スパムであってはいけません
readme や翻訳ファイルを含む公開ページは、スパム目的に使用できません。スパム行為には、不必要なアフィリエイトリンク、競合プラグインへのタグ付け、合計12以上のタグの使用、ブラックハット SEO、キーワードの詰め込みなどが含まれますが、これらに限定されません。
プラグインの使用に必要なテーマや他のプラグインなど、直接必要な製品へのリンクは、節度ある範囲で許可されます。同様に、関連製品はタグで使用できますが、競合製品は使用できません。プラグインが WooCommerce の拡張機能である場合、「woocommerce」というタグを使うことができます。ただし、プラグインが Akismet の代替である場合は、タグとして Akismet というタームを使用できません。タグや特定の用語を繰り返し使用することは、キーワードの詰め込みとみなされ、許可されません。
Readme は、bot ではなく、人間のために書かれるべきものです。
すべての場合において、アフィリエイトリンクは開示されなければならず、リダイレクトや偽装された URL ではなく、アフィリエイトサービスに直接リンクされていなければなりません。
13. プラグインは、WordPress のデフォルトライブラリを使用しなければなりません
WordPress には、jQuery、Atom Lib、SimplePie、PHPMailer、PHPass などの便利なライブラリが多数含まれています。セキュリティと安定性の理由から、プラグインはこれらのライブラリを独自のコードに含めることはできません。代わりに、プラグインは WordPress に同梱されているバージョンのライブラリを使用しなければなりません。
WordPress に含まれるすべての JavaScript ライブラリのリストについては、WordPress に含まれ登録されているデフォルトのスクリプトをご覧ください。
14. プラグインへの頻繁なコミットは、避けるべきです
SVN リポジトリは、リリースリポジトリであり、開発用ではありません。コードであれ readme ファイルであれ、すべてのコミットはプラグインに関連する zip ファイルを再生成するトリガーとなるので、配布準備が整ったコード (安定版リリース、ベータ版、リリース候補版を問いません) だけを SVN にプッシュしてください。各コミットには、説明的で有益なメッセージを含めることを強く推奨します。「update」や「cleanup」のような「trash」コミットメッセージが頻繁にあると、他の人が変更を追うのが難しくなります。(readme を含む) プラグインの些細な部分を調整しただけの、複数の連発コミットは、システムに過度の負担をかけ、最近更新されたリストがゲーム化しているように見えることがあります。
この例外は、WordPress の最新リリースのサポートを示すためだけに readme ファイルが更新される場合です。
15. プラグインのバージョン番号は、新規リリースの都度インクリメントしなければなりません
ユーザーは、プラグインのバージョンが上がったときだけ、アップデートを通知されます。trunk の readme.txt は、常にプラグインの現在のバージョンを反映しなければなりません。tag 付けの詳細については、tag 付けに関する SVN の指示と readme.txt の仕組みをお読みください。
16. 申請時に、完全なプラグインが利用可能であること
すべてのプラグインは承認前に検査されます。そのため zip ファイルが必要です。将来の使用やブランド保護のために名前を「予約」できません (ガイドライン「17: ブランドを尊重する」参照)。承認されたプラグイン用のディレクトリ名で、使用されていないものは、他の開発者に譲ることができます。
17. プラグインは、商標、著作権、プロジェクト名を尊重しなければなりません
商標やその他のプロジェクトを、プラグインのスラッグの単独または初期タームとして使用することは、法的な所有権/代理権の証明が確認できない限り禁止されています。たとえば、WordPress Foundation は「WordPress」というタームを商標登録していますし、ドメイン名に「WordPress」を使用することは違反です。このポリシーはプラグインのスラッグにも適用され、他の製品のタームで始まるスラッグは許可されません。
たとえば、Super Sandbox の従業員のみが、「super-sandbox」というスラッグや、「Super Sandbox Dancing Sloths」のような文脈で、彼らのブランドを使用すべきです。非従業員は、プラグインが Super Sandbox によって開発されたとユーザーに誤解を与える可能性を避けるために、代わりに「Dancing Sloths for Superbox」のようなフォーマットを使うべきです。同様に、もしあなたが「MellowYellowSandbox.js」プロジェクトを代表していないのであれば、それをプラグインの名前として使うのは不適切です。
オリジナル・ブランディングは、混乱を避けるだけでなく、ユーザーの記憶に残りやすいので推奨されます。
18. 私たちは、可能な限りプラグイン・ディレクトリを維持する権利を保有します
私たちの意図は、できるだけ人道的に公平に、これらのガイドラインを実施することです。これは、プラグイン全体の品質とユーザーの安全を確保するためです。そのために、私たちは以下の権利を保持します:
- …このガイドラインは、いつでも更新できます。
- …ガイドラインに明示されていない理由であっても、プラグインを無効にしたり、ディレクトリから削除したりができます。
- …たとえセキュリティに関連する問題であっても、例外を認めて、開発者に対処する時間を与えることです。
- …プラグインに対する開発者のアクセス権を削除し、新たに活動する開発者に代えること。
- …公共の安全のために、開発者の同意なしにプラグインに変更を加えること。
その見返りとして、私たちはこれらの権利を控えめに、そしてエンドユーザーと開発者の双方に可能な限り敬意を払って使用することを約束します。