WordPressの管理画面から「プラグイン → 新規追加」で検索すると、世界中の開発者が公開したプラグインが何万件も見つかります。
実はあの公式ディレクトリ、誰でも無料で自作プラグインを登録・公開できます。
「自作のプラグインを公開してみたいけど、手順が複雑そう…」と感じている方も多いのではないでしょうか。確かに初めては戸惑う部分もありますが、ポイントさえ押さえれば決して難しくありません。
本記事では、自作プラグインを WordPress.org 公式ディレクトリに登録・公開するための「作成〜申請」までの全手順をまとめました。
全体の流れをざっくり把握しよう
細かい話に入る前に、登録から公開までのステップを俯瞰しておきましょう。全体像がわかっていれば、途中で迷うことはありません。
① プラグインの完成度チェック
↓
② 必須ファイルの準備(PHPヘッダー・readme.txt)
↓
③ WordPress.org アカウント作成
↓
④ ZIPファイルをアップロードして申請
↓
⑤ 審査(数日〜2週間)・修正対応
↓
⑥ 承認後、SVNでリリース作業
↓
⑦ 公式ディレクトリに公開!🎉
本記事で扱うのは ①〜⑤の「作成〜申請」 までです。⑥⑦の SVN リリース作業と公開後の運用については、次回の記事で解説します。
1. 事前準備──申請前にやるべきこと
公式ディレクトリへの申請前に整えるべきは、大きく分けて4点です。
- プラグインの品質(機能・セキュリティ・WordPress準拠)
- ファイル構成(フォルダ・ファイルの配置ルール)
- PHPヘッダー(プラグインのメタ情報)
- readme.txt(公式ページに掲載される説明文)
順番に見ていきましょう。
1-1. プラグインの完成度チェック
申請すると WordPress のレビューチームが実際にコードを読んで審査します。「動けばOK」ではなく、以下の3つの観点を事前にクリアしておく必要があります。
機能面
- 基本機能がすべて正常に動作している
- エラーハンドリングが適切に行われている
- 独自性がある(既存プラグインとの差別化ポイントが明確)
セキュリティ面
審査で最も指摘が多い領域です。最低限、以下の3点は押さえましょう。
- 出力のエスケープ ── esc_html(), esc_attr() などで XSS を防ぐ
- ノンス検証 ── wp_nonce_field() / wp_verify_nonce() でリクエスト偽造を防ぐ
- 入力のサニタイズ ── $_POST や $_GET の値は必ず sanitize_text_field() 等で処理する
WordPress準拠
- WordPress のコーディング規約に沿っている
- 非推奨関数を使用していない
- 国際化(i18n)対応ができている
💡 開発環境のおすすめ:Local ローカルで WordPress を動かせる無料ツールです。毎回サーバーにアップロードしなくて済むので、開発効率が格段に上がります。
1-2. ファイル構成
プラグインフォルダの基本構成は以下のとおりです。
your-plugin-name/
├── your-plugin-name.php (メインPHPファイル)
├── readme.txt (★ 公式ページの説明文になる最重要ファイル)
├── assets/
│ ├── css/
│ └── js/
└── languages/ (多言語対応用)
├── your-plugin-name.pot
├── your-plugin-name-ja.po
└── your-plugin-name-ja.mo
ここでの最大の注意点は、フォルダ名とメインPHPファイル名を一致させることです。 この名前がプラグインのスラッグ(URL上の識別子)になり、あとから変更できません。わかりやすく一貫性のある命名を心がけましょう。
1-3. メインPHPファイルのヘッダー記述
メインPHPファイルの冒頭には、WordPress にプラグインとして認識してもらうためのヘッダーコメントを記述します。
<?php
/**
* Plugin Name: Your Plugin Name
* Plugin URI: https://example.com/your-plugin
* Description: A brief description of what your plugin does.
* Version: 1.0.0
* Author: Your Name
* Author URI: https://example.com
* License: GPLv2 or later
* License URI: https://www.gnu.org/licenses/gpl-2.0.html
* Text Domain: your-plugin-name
* Domain Path: /languages
* Requires at least: 5.0
* Requires PHP: 7.4
*/
各項目の意味は以下のとおりです。
| 項目 | 説明 |
| Plugin Name | プラグインの表示名。既存プラグインと被らないユニークな名前にすること(「Contact Form」のような一般的すぎる名前や、「WP」など他社商標を含む名前はリジェクトの原因になる) |
| Plugin URI | プラグインの紹介ページURL |
| Description | 管理画面のプラグイン一覧に表示される説明文 |
| Version | 現在のバージョン番号(セマンティックバージョニング推奨) |
| Text Domain | 翻訳用の識別子。プラグインのスラッグ(フォルダ名)と同じにする |
| Requires at least | 動作に必要な WordPress の最低バージョン |
| Requires PHP | 動作に必要な PHP の最低バージョン |
また、ヘッダーの下に GPLライセンスの全文コメント を記載しておくと安心です。
/*
Copyright 2026 Your Name
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License, version 2, as
published by the Free Software Foundation.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
1-4. readme.txt の作成
readme.txt はプラグインの”顔” です。WordPress.org のプラグインページに掲載される公式説明文として使われるため、専用のフォーマットで作成する必要があります。
ゼロから書く必要はなく、公式テンプレートが用意されています。ここではセクションごとにポイントを解説します。
① ヘッダー部分
=== Your Plugin Name ===
Contributors: your-wordpress-username
Tags: form, contact, email, shortcode, spam
Requires at least: 5.0
Tested up to: 6.9
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
A short description of your plugin (150 characters or less).
ファイルの先頭に書くメタ情報です。WordPress.org がこの情報を読み取り、プラグインページに自動反映します。
| 項目 | 書き方のポイント |
| === プラグイン名 === | === で囲むのがルール。PHPヘッダーの Plugin Name と完全に一致させる |
| Contributors | WordPress.org のユーザー名を記載(表示名ではない点に注意) |
| Tags | プラグインの機能を表すキーワード。最大5つまで |
| Tested up to | テスト済みの WordPress 最新バージョン(2025年12月時点では 6.9) |
| Stable tag | PHPヘッダーの Version と必ず一致させる(不一致は頻出ミス) |
| 短い説明文 | ヘッダー直下の1行。150文字以内。検索結果の一覧に表示される |
② == Description ==(プラグインの詳しい説明)
== Description ==
A longer description of your plugin. Explain what it does,
who it's for, and why it's useful.
**Key Features:**
* Feature 1: Explain what it does
* Feature 2: Explain what it does
**Highlights:**
* Highlight 1
* Highlight 2
プラグインページのメインコンテンツです。「何ができるか」「誰に向けたものか」「なぜ便利か」を具体的に書きましょう。**太字** や * 箇条書きなど、Markdown に近い独自記法が使えます。
③ == Installation ==(インストール手順)
== Installation ==
1. Upload the plugin folder to `/wp-content/plugins/` directory.
2. Activate the plugin through the 'Plugins' menu in WordPress.
3. Go to Settings > Your Plugin to configure.
ユーザーがプラグインを導入するための手順を記載します。基本は上記の3ステップで十分ですが、初期設定が必要な場合はその手順も追記しましょう。「プラグイン → 新規追加 から検索してインストール」の方法も書いておくと親切です。
④ == Frequently Asked Questions ==(よくある質問)
== Frequently Asked Questions ==
= How do I use this plugin? =
Explain basic usage here.
= Is this plugin free? =
Yes, it is completely free and open source.
ユーザーからの質問を想定した Q&A セクションです。質問は = 質問文 = のように = で囲みます。初回は「基本的な使い方」「対応環境」「料金」あたりを用意しておけばOKです。リリース後にサポートフォーラムで実際に受けた質問を追記していくと、問い合わせの削減にもつながります。
⑤ == Screenshots ==(スクリーンショット)※審査終了後に追加する
== Screenshots ==
1. Screenshot description for screenshot-1.png
2. Screenshot description for screenshot-2.png
プラグインの画面キャプチャの説明文です。番号がファイル名に対応し(1 → screenshot-1.png)、画像自体は SVN の assets/ フォルダに格納します(プラグインフォルダ内ではないので注意)。管理画面の設定画面やフロントエンドの表示例など、見た目が伝わるスクリーンショットがあるとユーザーの安心感が大きく変わります。
⑥ == Changelog ==(変更履歴)
== Changelog ==
= 1.0.0 =
* Initial release
* Core functionality implemented
バージョンごとの変更内容を記録するセクションです。初回リリースは「Initial release」と簡潔に書けばOK。アップデート時は「何を修正・追加したか」をバージョンごとに追記していきます。ユーザーが管理画面で更新内容を確認する際に参照する情報なので、丁寧に書いておきましょう。
readme.txt を書くときの注意点
言語は英語で書きましょう。 「日本語でもOK」という情報もありますが、審査チームは英語話者がほとんどです。英語で記述したほうが審査がスムーズに進みます。管理画面の表示を日本語にしたい場合は、翻訳ファイル(.po / .mo)で対応するのがベストです。
作成したら 公式バリデーター で必ずチェックしましょう。フォーマットの間違いを事前に検出できます。
2. WordPress.org への申請
準備が整ったら、いよいよ申請です。
2-1. アカウント作成
WordPress.org のアカウントがない場合は、まず アカウント登録ページ から作成します。ここで設定するユーザー名は readme.txt の Contributors に記載するものなので、適切な名前で登録しましょう。
2-2. ZIPファイルのアップロード
プラグインフォルダを ZIP 形式に圧縮し、申請ページ からアップロードします。
ZIP ファイルの構成は以下の形にしてください。
your-plugin-name.zip
└── your-plugin-name/
├── your-plugin-name.ph
├── readme.txt
└── …
ZIP 作成時の注意点:
- ZIP の直下にプラグインフォルダが来るようにする
- 不要なファイル(.DS_Store、.git フォルダ、node_modules など)は含めない
- ファイル名に日本語や空白を含めない
2-3. 審査を待つ
アップロードが完了すると、WordPress のレビューチームによる審査が始まります。審査期間は通常数日〜2週間程度で、結果は登録したメールアドレスに届きます。混み具合によってはもう少しかかることもあります。
2-4. 審査で修正依頼が来たら?
審査中、英語のメールで質問や修正依頼が届くことがあります。よくあるパターンは以下のとおりです。
| よくある指摘 | 内容 |
| サニタイズ不足 | $_POST や $_GET の値をサニタイズせずに使っている |
| エスケープ漏れ | 直接 echo していてエスケープ処理が抜けている |
| 外部リソースの読み込み | 外部CDNからスクリプトを読み込んでいる(WordPress同梱のjQuery等を使うべき) |
| ライセンス表記不足 | GPLライセンスの記載が不十分 |
| 独自性の確認 | 「既存プラグインとどう違うのか?」という質問 |
恐れる必要はありません。 Google翻訳や ChatGPT などの翻訳ツールを使って、誠実に対応すれば大丈夫です。指摘されたコードを修正し、修正版 ZIP を再度アップロードして返信しましょう。
よくある質問(FAQ)
- 審査は厳しい?
-
基本的なセキュリティ対策(エスケープ、ノンス、サニタイズ)とライセンス表記がしっかりしていれば、過度に心配する必要はありません。指摘が来ても、修正して再提出すれば問題なく通ります。
- 無料で公開できる?
-
はい。WordPress.org 公式ディレクトリへの登録・公開は完全に無料です。
- 日本語のプラグインでも申請できる?
-
もちろん可能です。ただし readme.txt は英語で記述するのがおすすめです。管理画面の日本語化は翻訳ファイル(.po / .mo)で対応しましょう。
- プラグイン名はあとから変更できる?
-
スラッグ(URL上の識別子)は変更できません。表示名は変更可能ですが、混乱を避けるため最初から慎重に決めましょう。
まとめ
今回は、WordPress プラグインを公式ディレクトリに公開するための「作成〜申請」の流れを解説しました。
振り返ると、やるべきことは大きく3つです。
- 品質を整える ── セキュリティ対策・コーディング規約の準拠
- 必須ファイルを準備する ── PHPヘッダーと readme.txt を正しいフォーマットで作成
- ZIPにして申請する ── あとは審査チームの指示に従って対応するだけ
英語でのやり取りに不安がある方も、翻訳ツールを活用すれば問題なく対応できます。
次回は、審査通過後の SVN を使ったリリース作業と公開後の運用・アップデート方法を解説します。「承認メールが届いたけど、ここからどうすれば…?」という方はぜひチェックしてください。
自分が作った便利な機能が、世界中の WordPress サイトで使われる。開発者としてこれほどワクワクすることはありません。まだ公開していないプラグインがあれば、ぜひこの記事を参考にコミュニティへ共有してみてください。

