WordPress公式プラグイン審査で実際に指摘されたこと

WordPressプラグイン審査とチェックリストをイメージしたアイキャッチ画像

Layerworks AI Chatbot が WordPress.org の公式プラグインディレクトリに掲載されるまでに、いくつかの審査指摘がありました。

指摘された内容は、どれも「WordPress公式ディレクトリで配布するなら、ここは曖昧にしてはいけない」という実務的なものでした。

この記事では、実際に直したポイントを振り返ります。これから WordPress 公式プラグインを申請したい人や、独自プラグインをきちんと保守していきたい人の参考になればと思います。

1. 無料版なのに、ロックされた機能があるように見えた

特に大きかったのは、無料版と有料版の境界です。

WordPress.org の公式プラグインディレクトリでは、いわゆる trialware の扱いに注意が必要です。公式ガイドラインでは、プラグイン内に含まれている機能を支払いによってロック解除するような形は認められていません。

今回も、機能そのものが使えないわけではなくても、管理画面やコードの見え方として「有料版で解除される機能」のように見える部分がありました。

そこで、公式ディレクトリに置く無料版では、含まれている機能は無料版として使える形に整理しました。Pro向けの実行ファイルや、ライセンス解除前提に見える処理も公式ZIPから外しています。

これはかなり大事な考え方です。

無料版は無料版として成立していること。Pro版は、無料版にロック解除をかけるのではなく、別の追加価値として設計すること。この線引きを曖昧にすると、審査でも運用でも苦しくなります。

2. プラグイン名やクラス名が一般的すぎた

次に直したのが、名前の付け方です。

最初は、クラス名や変数名に一般的な名前が残っていました。たとえば、どの会社の何のプラグインか分かりにくい名前です。

WordPress は、多くのプラグインが同じ環境で動く仕組みです。一般的な名前を使うと、他のプラグインやテーマと衝突する可能性があります。

そのため、プラグイン固有の接頭辞を付け、クラス名やJavaScriptのグローバル変数も、Layerworks AI Chatbot のものだと分かる名前に変更しました。

これは審査対策であると同時に、WordPress開発の基本でもあります。

独自プラグインを社内利用する場合でも、名前空間や接頭辞を丁寧に付けておくと、あとから保守しやすくなります。

3. SQLのテーブル名の扱いを見直した

セキュリティ面では、SQLの扱いも見直しました。

WordPress では、データベースに直接クエリを書く場面があります。そのとき、値のエスケープだけでなく、テーブル名や識別子の扱いにも気を配る必要があります。

今回の修正では、動的なテーブル名を扱う箇所を見直し、WordPress の流儀に沿った形に寄せました。

「動いているから大丈夫」ではなく、「誰が見ても安全性を確認しやすい形にする」ことが、公式ディレクトリでは重要になります。

4. READMEは機能一覧ではなく、審査資料でもある

READMEファイルもかなり大事でした。

WordPress.org のプラグインページは、readme.txt をもとに表示されます。つまり README は、利用者向けの説明であると同時に、審査担当者がプラグインの意図を確認する資料でもあります。

今回も、説明が長すぎる部分や、無料版とPro版の境界が分かりにくい部分を整理しました。

特に AI や外部APIを使うプラグインでは、次のような情報を曖昧にしない方がよいです。

  • 何のために外部サービスへ接続するのか
  • どの設定が必要なのか
  • どの機能が無料版に含まれるのか
  • 個人情報や入力内容をどう扱うのか
  • 利用者がどこで設定を確認できるのか

READMEは、宣伝文ではなく信頼を作る文書です。

5. 配布ZIPに入れるものを厳密にした

公式ディレクトリに置くZIPには、余計なファイルを入れないことも重要です。

開発中のメモ、社内用ドキュメント、Pro版の実行ファイル、ビルド用の不要ファイルなどが混ざると、審査でも利用者目線でもよくありません。

今回も、公式配布用のZIPに含めるファイルを確認し、不要なものを除外しました。

地味ですが、この確認は毎回必要です。リリース直前のZIP確認を習慣にしておくと、あとから慌てる可能性を減らせます。

公式審査は、落とすためではなく整えるためにある

審査で指摘を受けると、最初は少し身構えます。

でも振り返ると、今回の指摘はどれも、WordPress公式ディレクトリで安心して配布するために必要なものでした。

無料版とPro版の境界をはっきりさせる。名前の衝突を避ける。SQLを安全に扱う。READMEで誤解を減らす。ZIPに余計なものを入れない。

どれも、審査を通すためだけではなく、長く保守するために効いてくる内容です。

WordPressの独自プラグイン開発では、つい機能追加に目が向きます。けれど、公式プラグインとして出すなら、機能そのものよりも「配布できる状態に整える」作業がかなり重要です。

Layerworks AI Chatbot も、ここからが運用の始まりです。今回の審査で直したことを、今後の開発基準として残していきたいと思います。