公式ディレクトリに登録するなら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互換のフォントファミリーが許可されているのはちょっと意外な感じですが、他のケースは「まあ、そうなのかな」と納得できる内容です。プラグインを作る際は、他サイトとの依存関係をきちんと考えないといけないですね。


最終更新 : 2018年05月27日 10:46


お勧め

the_title(2018年5月27日 更新)

string the_title( [ string $before = '' [ , string $after = '' [ , bool $echo = true ] ] ] )
投稿情報のタイトルをパラメータ$echoがtrueならば表示する。$echoがfalseの場合は表示せず、取得する。

wp_check_for_changed_dates(2018年5月27日 更新)

void wp_check_for_changed_dates( int $post_id, WP_Post $post, WP_Post $post_before )
更新された公開済みの投稿情報の公開日を保存する。

is_robots(2011年10月31日 更新)

bool is_robots( )
ロボットリクエストなのか調べる。

show_admin_bar(2012年1月5日 更新)

void show_admin_bar( bool $show )
ツールバー(admin bar)を強制的に表示/非表示する。

get_attached_file(2015年4月28日 更新)

string get_attached_file( int $attachment_id [ , bool $unfiltered = false ] )
添付ファイルのパス名を取得する。