【WordPress】自作プラグインを公開してみた件(申請〜公開手順)

WordPress

WordPressで自作プラグインを作ったら、ZIPファイルをアップロードすることで自分のサイトで使用することは可能ですが、いろんな人に使ってもらうにはプラグインを公式(WordPress.org)に申請して承認してもらい、公開する必要があります。公開されたプラグインは、プラグインの検索で確認することができ誰でも手軽にインストールすることができるようになるからです。

プラグインの検索
リリースしたプラグイン(Do Not Copy)

今回は、WordPressで自作プラグインを作って申請してから公開までの手順をまとめてみました。

【WordPress】自作プラグインを公開してみた件(申請〜公開手順)

プラグイン申請

自作プラグインを申請するには、WordPress.orgにログインし下記リンクから申請することができます。

Add your Plugin | WordPress.org 日本語
プラグイン申請

申請が終わったら下記のようなメッセージが<plugins@wordpress.org>から届きます。

プラグイン申請後のメッセージ

Thank you for uploading Do Not Copy to the WordPress Plugin Directory. We will review your submission as soon as possible and send you a follow up email with the results.

申請後、プラグインに問題があればメールで教えてもらえます。

Remember: Good prefix names are unique and distinct to your plugin. This will help you and the next person in debugging, as well as prevent conflicts.

Analysis result:

# This plugin is using the prefix "wcp" for 9 element(s).

# The prefix "wcp" is too short, we require prefixes to be over 4 characters.

指摘された内容を確認し、プラグインを修正してから再度プラグインをアップロードし、修正が終わったことを<plugins@wordpress.org>にメッセージを送りましょう!

プラグインの承認

承認メッセージ

Your review has been successfully completed. Details on how to access your SVN repository will be emailed within 24 hours to the address from which you submitted your plugin.

What to do next

You do not need to reply to this email, however please read the rest of it 🙂

From this point, we will not re-review your code unless we’re alerted to a guideline or security issue. We trust you to have the necessary skills to manage and maintain your own plugin.

プラグインの承認が通ったら上記のメッセージが送られてきます!

承認メッセージと別にSVNリポジトリのアドレスも届きます。

* SVN URL: https://plugins.svn.wordpress.org/プラグイン名
* Public URL: https://wordpress.org/plugins/プラグイン名

プラグインの公開

ここからはSVNリポジトリに作ったプラグインをコミットして公開します!

私はMacを使っているので、ここからはMacでの手順となります。

まずは、ターミナルを開いて下記のコードを入力します。

svn --version // SVNがインストールされているか確認

インストールされていなければ、Homebrewを使ってインストールしていきます。

brew install svn
Homebrewのインストール

Homebrewがインストールできたかを、再度svn –versionで確認。versionが表示されたらインストールが完了しています。

次は、公開作業をしたいフォルダに移動し「チェックアウト」していきます。

私はDesktopに「WordPress」というフォルダを作りました。

svn co https://plugins.svn.wordpress.org/プラグイン名 //チェックアウト
チェックアウト(リポジトリに登録されている内容を自分のローカル環境にコピー)

チェックアウト後は、最新のコード(プラグイン一式)をtrunkに追加します。

your-plugin/
├─ trunk/ (最新のコードを置く)
├─ assets/(プラグインの画像・バナー・スクリーンショットを管理)
└─ tags/  (バージョン管理)
do-not-copyという自作プラグインをtrunkに追加
svn add trunk/*  // フォルダ内のすべてのファイルやサブフォルダを SVN に追加
SVNにプラグインの中身が追加されました!

次は、コミットしていきます。コミットする時は、コメントが必要なのでコメントも残します。

svn commit -m "v1.0.0" // バージョン

コミットする時は、ユーザー名とパスワードを入力する必要があります。

※ユーザー名は「https://ja.wordpress.org/」にログインする時と同じです。

プラグインのコミット完了!

最後に、tagsに今回リリースしたプラグイン一式をコピーしてコミットしておきましょう!

svn copy https://plugins.svn.wordpress.org/プラグイン名/trunk \
         https://plugins.svn.wordpress.org/プラグイン名/tags/x.x.x \
         -m "Release version x.x.x"
Release version 1.0.0

以上になります。

公開時の注意点

ファイルを正しい構成で、SVNリポジトリにコミットしないとプラグインが公開されません。

your-plugin/(プラグインのフォルダ)
├── assets/       ← WordPress.org のプラグインページに表示される画像
├── branches/     ← 分岐開発(あまり使わない)
├── tags/         ← バージョン管理
│   └── 1.0.0
│       └── (プラグインのファイル一式)
└── trunk/        ← 現在開発中の最新バージョン(=本体)
    └── (プラグインのファイル一式)
    ├─ xxxxxx.php
    ~~~~~~~~~~~~~~~~~
    └─ readme.txt (Stable tag:1.0.0)

また、readme.txt のStable tag と tagsのバージョンが一致させる必要があります。

SVNで使うコマンドまとめ

操作コマンド説明
リポジトリ関連svn checkout <リポジトリのURL>作業コピーをリポジトリからチェックアウト
svn co <リポジトリのURL>上記のショートカット
作業コピーの確認svn status / svn st作業コピーの状態を確認(※)
svn diff作業コピーの変更差分を表示
svn logリポジトリの変更履歴を表示
作業コピーの同期svn update / svn up作業コピーをリモートリポジトリの最新状態に更新
svn update <ファイル名>特定のファイルを更新
変更の追加・管理svn add <ファイル名>新しいファイルやディレクトリを追加
svn add --force .新しいファイルやディレクトリを一括で追加
svn delete <ファイル名>ファイルを削除
svn revert <ファイル名>作業コピー内の変更を元に戻す
svn revert -R <ディレクトリ名>ディレクトリ全体の変更を元に戻す
コミット・プッシュsvn commit -m "コミットメッセージ"変更をリモートリポジトリにコミット
svn ci -m "コミットメッセージ"上記のショートカット
svn diffコミット前の変更内容を確認
ブランチ・タグの作成svn copy <リポジトリURL>/trunk <リポジトリURL>/branches/ブランチ名 -m "ブランチ作成"trunkから新しいブランチを作成
svn copy <リポジトリURL>/trunk <リポジトリURL>/tags/タグ名 -m "タグ作成"trunkから新しいタグを作成
リポジトリプロパティsvn propset svn:ignore "*.log" .特定のファイルを無視するプロパティ(例:*.log)を設定
svn propget svn:ignore .svn:ignoreプロパティの確認
その他の操作svn info作業コピーのバージョン情報を表示
svn status変更されたファイル(新規・変更・削除)を確認
svn diff -r <開始バージョン>:<終了バージョン> <ファイル名>リモートとローカルの差分を比較(バージョン指定)
svn list <リポジトリのURL>リモートリポジトリのファイルリストを表示

svn status のステータス記号と意味

ステータス記号意味
MModified(変更済み) — 作業コピー内のファイルがリポジトリに対して変更されたが、まだコミットされていない。
AAdded(追加済み) — 新しいファイルやディレクトリが追加されており、svn addで追加されたが、まだコミットされていない。
DDeleted(削除済み) — 作業コピー内のファイルが削除されたが、まだコミットされていない。
RReplaced(置き換え済み) — ファイルやディレクトリが削除され、新しいバージョンで追加された。
CConflicted(競合) — リモートリポジトリとローカルの作業コピーで競合が発生している。
XExternal(外部) — 外部リポジトリを参照している作業コピー内のアイテム。
IIgnored(無視された) — 無視されるべきファイルやディレクトリ(svn:ignoreで指定されたもの)。
?Unversioned(未バージョン管理) — SVNで管理されていない新しいファイルやディレクトリ。
!Missing(欠落) — 追跡中のファイルが削除されたか、何らかの理由で存在しない(作業コピーの一部が欠落している)。

まとめ

今回、初めて自作プラグインを作って実際に公開してみましたが思った以上に難しかったです。

ざっくりとした流れとしては…

  1. プラグイン作成
  2. 作成したプラグインにエラーがないかチェック「Plugin Check (PCP)
  3. プラグインの申請
  4. 申請したプラグインに問題があった場合は修正、再アップロード、公式にメール
  5. 承認が通った後はSVNリポジトリにプラグイン一式をコミット
  6. 反映確認

今回リリースしたプラグインは下記のプラグインです!

Do Not Copy
WordPressの投稿や固定ページのコピーを防止するプラグインです。

ぜひ、自作プラグインを作って公開したいと思ってる方は参考にしてみてください!

コメント

  1. Adam Brown より:

    ok

  2. 村井慎太郎 より:

    素晴らしい記事ですね!WordPressでのプラグイン公開手順についてとても明確に説明されています。疑問があるのですが、プラグインを公開する際に特に注意が必要なポイントはどこでしょうか?SVNの使用部分に少し不安があるため、もう少し詳細を教えていただけると助かります。

    • toshi より:

      コメントありがとうございます!
      私は今回が初めてのプラグイン公開だったので、作業してて詰まったことが…SVNリポジトリにコミットしたのになぜか公開されない。ということでした。

      特に注意が必要なポイントは『公開時の注意点』に書いたように、ファイルの配置やreadme.txtの記載を間違えないようにする。ことだと思います!

      上記の内容を修正したらすぐにプラグインが公開されました🧑🏻‍💻

      回答からずれていたらすみません…🙇🏻

      SVNの使用部分に不安があるということですが、流れをもう少し細かく書いた方がいいということでしょうか。。

タイトルとURLをコピーしました