公式ディレクトリに登録するならajax.googleapis.comのライブラリは利用しない

公式ディレクトリに登録するならajax.googleapis.comのライブラリは利用しない - プラグインを公開する際は注意しないとね

説明

数日前、投稿一覧ページの絞り込みドロップダウンメニューを複数選択可能にするプラグイン「Posts filter multiselect」を公開したのですが、その際に指摘されたポイントを紹介します。

はじめての申請NG

年に数回プラグインを作っては公式ディレクトリに登録しているのですが、今回のプラグインではEric Hyndsさんが公開している「jQuery UI MultiSelect Widget」を使用しています。このjQueryプラグインでは、jQuery UIテーマによりドロップダウンメニューのデザインをカスタマイズできるようになっており、公開前の「Posts filter multiselect」ではできるだけコンパクトなファイル構成にしたかったのでajax.googleapis.comにあるjQuery UIテーマをwp_enqueue_style関数で指定していました。

一通り作り終えたところで公式ディレクトリに登録申請を出したところ、WordPress.orgでコートレビューをされた方から次のようなメールが届きました。

Offloading images, js, css, cgi, and other scripts to Google (or jquery.com or anywhere else frankly) is disallowed because you're introducing an unnecessary dependency on another site. If the file you're trying to use isn't a part of WordPress Core, then you should include it -locally- in your plugin, not remotely. If the file IS included in WordPress core, please call that instead.

自分のつたない英語スキル(もちろん翻訳サイトを駆使)で読み取った感じだと、「Google(jquery.comや他サイト)から画像、JS、CSS、CGIやそのほかのスクリプトを参照することは、そのようなサイトとの不要な依存関係を作ることになってしまうため、禁止されています」ということらしい。これまで何度かプラグイン登録申請をしているのですが、NGになったのはこれが初めてです。

続いて、具体的な禁止例では次のようなケースが書かれていました。

* Offloading jquery CSS files to Google - You should include the CSS in your plugin.
* Inserting an iframe with a help doc - A link, or including the docs in your plugin is preferred.
* Calling images from your own domain - They should be included in your plugin.

登録申請した自分のプラグインは一番最初のケースに当てはまり、プラグイン自身にCSSを組み込めばいいようです。まあ禁止されている以上どうしようもないので、とりあえず使用しているjQuery UIテーマを組み込み、wp_enqueue_style関数のURLパラメータを修正して、再度レビューを依頼。ほどなく公開することができました。

他サイトとの依存関係は条件しだいで許可されている

さて他サイトとの依存関係ですが、一定の条件にマッチすれば許可されているようです。今回のメールでは禁止事例のあとに、次のようなケースは許可していると書かれています。

* Calling font families from Google or their approved CDN (if GPL compatible)
* API calls back to your server to process possible spam comments (like Akismet)
* Offloading comments to your own servers (like Disqus)
* oEmbed calls to a service provider (like Twitter or YouTube)

GPL互換のフォントファミリーが許可されているのはちょっと意外な感じですが、他のケースは「まあ、そうなのかな」と納得できる内容です。プラグインを作る際は、他サイトとの依存関係をきちんと考えないといけないですね。

関連

お勧めコンテンツ

wp_validate_redirect(2012年4月26日 登録)

string wp_validate_redirect( string $locaution [ , string $default = '' ] )
URLがリダイレクト先として有効か調べる。

get_categories(2010年12月2日 登録)

array get_categories( [ mixed $args = '' ] )
条件を指定してカテゴリー情報を検索し、マッチしたすべてのデータを取得する。

has_excerpt(2011年4月22日 登録)

bool has_excerpt( [ int $id = 0 ] )
投稿情報に抜粋が含まれている(入力されている)か調べる。

get_editor_stylesheets(2014年9月5日 登録)

array get_editor_stylesheets( )
エディタ向けのスタイルシートURLを取得する。

get_the_content(2014年3月3日 登録)

string get_the_content( [ string $more_link_text = null [ , bool $strip_teaser = false ] ] )
現在の投稿情報のコンテンツを取得する。

最終更新日時 : 2015-03-21 21:23