npcのWordPressプラグインがWP.org公式ディレクトリに公開されました
2026年5月12日、npcが開発したWordPressプラグイン「NPC Manual Generator for Advanced Custom Fields」が、WordPress.org(WP.org)の公式プラグインディレクトリに正式掲載されました。
プログラミングの知識はほとんどない自分が、AIと一緒に作ったプラグインがWP.orgに並んでいる——それだけで少し感慨深いものがあります。今日は申請から公開までを振り返りつつ、審査で戸惑った箇所と乗り越え方を記録しておきたいと思います。これからWP.orgへの申請を考えている方の参考になれば幸いです。
※「ACF(Advanced Custom Fields)」とは、WordPressの管理画面にカスタムフィールド(テキスト・画像・繰り返しなど自由な入力項目)を追加できる定番プラグインです。WordPress制作の現場では幅広く使われています。
※「WordPress.org(WP.org)公式ディレクトリ」とは、世界中のWordPressユーザーが無料でインストールできるプラグインが掲載されている公式の配布所です。申請には審査があります。
なぜ作ったのか——納品後の「あの手間」をなくしたかった
ACFを使ってWordPressサイトを納品するとき、更新マニュアルの作成に時間を取られることがずっと気になっていました。納品先の設計思想については以前カスタム投稿タイプ設計で気をつけている3つのことでも書いた通り、設計が丁寧になるほどフィールド数も増えて、その分マニュアルが膨らみます。
「このフィールドは何を入れるのか」「ここに画像を追加するときはどうするか」——クライアントに自走してもらうためには、フィールドの種類や使い方をきちんと伝える必要があります。でも毎回1から書いていると、それだけで1〜2時間かかることもある。
「ACFのフィールド構造はデータとして取れるんだから、マニュアルも自動で出せるはずだ」と思ったのがきっかけです。アイデア自体はシンプルで、「こんなのあったらいいよな」という素朴な動機でした。プログラムを0から書ける技術はないけれど、AIと一緒なら形にできそうだという見通しもあった(このあたりの感覚はノーコードからコード直書きに切替えた話でも書いています)。
実際に作ってみると、ACFのフィールドタイプは19種類以上あり、Repeaterフィールドの活用パターンのようなネスト構造をMarkdown/PDFで正しく表現するのは思ったより手がかかりました。それでも、Claude Codeで1日でWebアプリを公開できた経験と同じく、AIと行き来しながら少しずつ形にしていく過程は楽しかったし、何より「実案件で使えるもの」ができていく実感がありました。
荒削りな部分もあるかもしれないけれど、同じ悩みを持つ制作者に少しでも届けば十分だと思っています。
プラグインの機能紹介——ACFのフィールドから更新マニュアルを一発生成
「NPC Manual Generator for Advanced Custom Fields」は、ACFで設定したフィールドグループの構造を読み取り、クライアント向けの更新マニュアルを自動生成するWordPressプラグインです。
主な機能は以下の通りです。
- ACFのフィールドグループを選択して、マニュアルをプレビュー表示
- Markdownファイルとして単体ダウンロード
- PDF形式で出力(日本語フォント・IPAexゴシック同梱済み、追加インストール不要)
- 複数フィールドグループをZipで一括ダウンロード(MD/PDF/両方の形式を選択可)
- Text、Image、Repeater、Flexible Content、Group、Relationship、Taxonomy、True/False、Select、Date Picker、Color Pickerなど19種類以上のフィールドタイプに対応
- Repeater・Flexible Content・Groupなどのネスト構造も適切に階層表現
活用シーンとしては、こんな場面を想定しています。
- ACFを使ったサイトの納品時に、フィールド一覧をそのまま操作マニュアルとして同梱したい
- クライアントに「このページはどこを更新すればいいの?」と聞かれる前に、きちんと説明資料を渡しておきたい
- 毎回手書きしているマニュアルの時間を別の作業に使いたい
WP.orgから無料でダウンロードできます。
NPC Manual Generator for Advanced Custom Fields — WordPress.org
WP.org審査でハマった話——4往復の記録
プラグインを作り終えて「申請しよう」と動き始めたのが2026年4月28日でした。ここから公開確定まで約2週間、思いのほか往復が続きました。
最初の申請時は、配布用ZIPの中にビルドスクリプト(`.sh`ファイル)が混入していたことと、プラグインのPlugin URIとAuthor URIが同じURLになっていたことでエラーが返ってきました。修正して再アップロード。
次に自動スキャンで「textdomainの不一致」と「composer.jsonが含まれていない」という警告が上がりました。プラグインのTextDomainとスラッグを完全に統一して、composer.jsonを同梱して再送。ここでようやく「Awaiting Review(審査待ち)」状態になりました。
5月4日、レビュアーから正式な指摘メールが届きました。「Pended(保留)」という扱いで、修正しなければ審査が進まないステータスです。指摘の内容は4点でした。
※「Pended(保留)」とは、WP.org審査チームが「修正が必要」と判断したときに付くステータスです。通常の「Awaiting Review(審査待ち)」とは異なり、指摘内容への対応と返信が必要になります。
Pended指摘の4点と対応
1点目はサニタイゼーションの不足。$_POST から受け取った値を wp_unslash() だけで処理していた箇所があり、その値が後段のエラーメッセージ等に混入する可能性がある、という指摘でした。正しくは受け取り直後に sanitize_text_field() もセットで掛ける必要があります。
2点目はソースコードの日本語表記。プラグインヘッダーの説明文、__() 関数で囲んでいる文字列、readme.txtの内容、フィールドタイプのラベル配列など、ソースコードに直接日本語を書いていた部分がすべて指摘対象になりました。WP.orgのベストプラクティスは「ソース原文は英語、日本語訳は言語ファイル(.po/.mo)で提供する」という方針です。
3点目はload_plugin_textdomain() の不要な明示呼び出し。WP 4.6以降、WP.orgディレクトリに掲載されているプラグインは言語ファイルが自動でロードされるため、自前で呼び出す必要はないそうです。
4点目はadmin_notices の表示範囲。WordPress管理画面全体でお知らせを出してしまっていたため、WP.orgガイドライン「自分のプラグインのページ以外では通知を出すな」に引っかかりました。
これらをまとめてClaude Codeと一緒に修正し、5月6日に修正版を送りました。このとき最初はzipをメールに直接添付したのですが、WP.orgのSMTPサーバーの10MB制限に弾かれてバウンスしてしまいました。zipは9.5MBでも、メール添付ではBase64エンコードで約33%膨張して13MB超になってしまうのです。Google Driveに上げて公開リンクを本文に貼って再送したら無事に届きました。
ただ、その後にGoogle Driveのリンクが「公開アクセス不可」の状態になっており(共有設定のミス)、WP.orgのアップロードフォームから直接アップし直すことになりました。5月10日に「ファイル名にスペースが含まれるファイルが混入している」「スクリーンショット画像が配布zipに入っている」という2点の追加指摘があり、それも対応。そして5月11日、ついに承認のメールが届きました。
申請から承認まで約2週間、合計4往復のやり取りでした。
次回からのチェックリスト(まとめ)
同じ罠にハマりそうな方向けに、申請前に確認しておきたいポイントをまとめます。
- 配布zipに `.sh`・`.bat`・`.exe` を含めない(ビルドスクリプト類は除外する)
- スクリーンショット画像はzipに含めない(SVNの `/assets/` ディレクトリに別途アップ)
- ファイル名にスペースを使わない(特にフォントファイルや外部ライブラリ由来のファイルに混入しやすい)
$_POST等の外部入力はwp_unslash()+sanitize_text_field()をセットで使う- ソース原文は英語に統一する(日本語は
.po/.mo言語ファイルで提供) load_plugin_textdomain()は WP 4.6+ のWP.org配布なら不要admin_noticesは自プラグインのページのみに絞る- zipが9MB超の場合、メール添付は避けてGoogle Drive等の公開リンクで送る
- Pendedのときはメールに直接返信する(Developer Informationページからの再提出は新規申請専用なので使えない)
第二弾・第三弾も動いています
npcのWordPressプラグインは、これで第一弾が出た形です。
第二弾として動かしているのが「NPC WP Healthcheck」。WordPressサイトの状態チェック(更新状況・セキュリティ・エラーログ・SSL期限など)を一画面で確認し、AIがレポートを生成してくれるプラグインです。現在は自分の保守業務で使っているツールで、月次保守20サイトを効率化するために作った診断プラグインの記事で経緯を書きました。いずれ同業の方向けにも公開する予定です。
第三弾として企画しているのが「npc-slug-genius」。日本語タイトルからSEO最適化された英語スラッグを自動生成するプラグインで、翻訳ではなくSEOの観点でスラッグを考えてくれる点を差別化ポイントにしています。Claude・ChatGPT・Geminiのいずれも使えるマルチAI対応の予定です。
どちらもリリースが決まったらここで報告します。
まとめ
WP.orgの公式ディレクトリへの申請は、初回からスムーズに通るものではありませんでした。でも、指摘のひとつひとつはコードの品質を上げることに直結していて、振り返ると「審査があって良かった」という気持ちがあります。
プログラムの知識がなくても、アイデアとAIのサポートがあれば、世界中のWordPressユーザーに使ってもらえるプラグインを作って公開できる。そういう時代になっていることを、今回改めて実感しました。
npcとしては「シンプルで使いやすい」をコンセプトに、これからも自分の実務から生まれたプロダクトを少しずつ出していこうと思っています。
プラグインの公式ページはこちらです。気になった方はぜひ試してみてください。
NPC Manual Generator for Advanced Custom Fields — WordPress.org