急に思い立ってWordPress(ワードプレス)のプラグインを自作してみました。
どうせならそのままWordPressプラグイン公式サイト(WordPress.org Plugins)に登録してみようと思い申請をしてみることに。
結果、ところどころハマりつつも、なんとかリリースするに至りました。
ということで、今回は自作WordPressプラグインを作ってから申請に必要なファイルを揃えて申請し、さらに審査通過後にWordPressプラグイン公式サイトへと実際にリリースするまでの手順をまとめていきます。
ハマった部分、readme.txtの作成やSubversionでの管理方法についても触れていきます。
WordPressプラグイン公式サイト(WordPress.org Plugins)へと自作プラグインを登録するメリット
さてさて、最初になぜ自作したプラグインをWordPressプラグイン公式サイトに登録するかですが。
自分や社内のみで使う分には、登録せずに使えば良いので登録する必要はないわけです。
WordPressプラグイン公式サイトに登録されることでのメリットのひとつとして、まずはWordPressプラグイン公式サイトに作成したプラグインのページが生成されること。
そのページ上でプラグインの情報を公開、ユーザがページ上からプラグインファイルをダウンロードすることも可能になります。下記リンクは今回リリースしたプラグインです。
https://wordpress.org/plugins/weather-in-japan/
さらにWordPress管理ページから、ユーザがプラグインを簡単に導入することが可能になります。
そのプラグインの機能を自分では作れないユーザにも利用が可能になる…WordPressがどんどん便利になるといったところでしょうか。
Weather in Japan|天気予報を表示するプラグイン【WordPress】
申請するWordPressプラグインのファイル準備
さてさて、前置きはここまでとして申請手順に入ります。
まずは申請するWordPressプラグインのファイル準備から。
http://wpdocs.osdn.jp/プラグインの作成
このフェーズについては上記WordPressの日本語版Codexがわかりやすいのでおすすめです。
必須ファイルは2つ。
- プラグイン名.php
- readme.txt
上記の他、cssやjsなどのディレクトリを作って読み込んだりするのはもちろんOK。
プラグイン名.phpはプラグインのメインPHPファイル。
注意点としては、ファイル名がユニークでなくてはいけないこと。
あなたのプラグインをインストールする人々は、この PHP ファイルを WordPress のプラグインディレクトリー wp-content/plugins/ に配置しますが、同じファイル名の PHP ファイルであるプラグインは複数存在できないのです。
さらに、メインPHPファイルにはヘッダー情報を記述する必要があります。
<?php /* Plugin Name: (プラグインの名前) Plugin URI: (プラグインの説明と更新を示すページの URI) Description: (プラグインの短い説明) Version: (プラグインのバージョン番号。例: 1.0) Author: (プラグイン作者の名前) Author URI: (プラグイン作者の URI) License: (ライセンス名の「スラッグ」 例: GPL2) */ ?>
さらに、ヘッダー情報の後にはライセンス情報を記述します。
<?php /* Copyright 作成年 プラグイン作者名 (email : プラグイン作者のメールアドレス) 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 */ ?>
readme.txtの作り方
メインPHPファイルへのヘッダー情報の記述が完了したら、もう一つの必須ファイル「readme.txt」を準備します。
ここはもう、WordPressさんがおっしゃっているように作るのが一番。
■Plugin Handbook
https://developer.wordpress.org/plugins/wordpress-org/how-your-readme-txt-works/
■readme.txt バリデーションツール
https://wordpress.org/plugins/developers/readme-validator/
サンプルファイルを参考にして自分のプラグイン用に書き換え、作成したreadme.txtをバリデーションツールでエラーチェックするのが一番わかりやすく間違いないかと。
https://plugins.svn.wordpress.org/weather-in-japan/trunk/readme.txt
参考までに僕が作ったプラグインのreadme.txtも貼っておきます。文字化けするかもなのでエンコード変えて見てみてください。
調べていると英語じゃないと駄目と書かれていたりもするけど、試しに日本語で出したらすんなりOKでした。
ちなみにreadme.txt内ではマークダウンが使えます。
いよいよ申請!zipファイルをアップロードするだけ超簡単
さて、ファイルの準備が完了したらいざ申請です。
ここまでくれば簡単で、
- wordpress.orgでログイン(アカウント登録していない場合はサインアップ)
- プラグインファイルをまとめたzipファイルをwordpress.orgからアップロード
と簡単な手順を踏むだけです。
https://wordpress.org/plugins/developers/add/
wordpress.orgでログインした後に上記URLにアクセスすると、プラグインファイルのアップロードができるようになっています。
「Select File」からプラグインファイルをまとめたzipファイルを選択し、「Upload」ボタンを押すことで申請完了。たったこれだけでOKです。
後は審査してくれるのを待つだけです。
申請方法を調べてみると、この段階で以前は「プラグイン名」「プラグインの説明」を入力する欄があり、さらにプラグインzipファイルはどこかのサーバに置き、そのURLを入力する必要があったようです。
申請方法が変わって便利になったようですね。
申請したらメール待ち!審査後には修正指示も?
申請してから2日後、レビュアー(wordpress.org)からメールが届きました。
メールの文頭には”There are issues with your plugin code.”の一文。プラグインのコードに問題有りということですね。
「if ( ! defined( ‘ABSPATH’ ) ) exit;」って?【WordPressプラグイン申請】
内容については上記記事に書きましたが、修正の指示が届いた形です。
ま、これは僕の知識不足。問題なければすんなり審査通過となるでしょう。
ちなみに、修正したデータを送ってからの返答は早く、ストレスなく審査完了と相成りました。
審査通過時には、Subversion(サブバージョン)上に申請したプラグイン専用のリポジトリを作成した旨のメールが届きます。
先ほど僕が申請したプラグインのreadme.txtへのリンクを貼りましたが、それがプラグインのリポジトリになります。自分のプラグインのSubversionへのURLは審査完了メールに記載されていますよ。
Subversion(サブバージョン)で自作プラグインのリポジトリ管理
専用のリポジトリが生成されたら、そのリポジトリに自作プラグインのファイルをアップロードしていく必要があります。
プラグインリポジトリのURLにブラウザからアクセスしてみると、下記のような構成になっているかと思います。
- assets/
- branches/
- tags/
- trunk/
さて、ここまでくれば登録完了まで後少し。最後の難関、Subversionでの管理となります。
難関と書いたのも、僕は普段Gitを愛用しているため、Subversionには不慣れ…というか初めて触るくらいだったのです。
GUIなどで操作する方法もありますが、ここではターミナルから作業していきます。ちなみにMacbook使ってます。
まずはSubversionをインストール。MacPortsを使っているので、”sudo port install subversion”なんつってインストールしていきます。
注意点としてはXcodeが必要だったりすることくらいでしょうか。
Subversionがインストールできたら、”svn help”などとターミナルから入力して、コマンドが効くことを確認。
Subversionが使える状態になったら、リポジトリを管理するディレクトリにターミナルで移動し、下記コマンドを入力します。
svn co https://plugins.svn.wordpress.org/プラグイン名/
URL部分は、前述の審査完了メールに記載されたリポジトリURLになります。
すると、ローカルにリポジトリ内のディレクトリが生成されているのが確認できるはずです。
ここに自作プラグインのファイルを追加していく形になります。
trunkディレクトリへのファイル追加
まず、trunkディレクトリに自作プラグインのファイル一式を追加します。
readme.txtもここに入れることを忘れずに。
assetsディレクトリへのファイル追加
assetsディレクトリには、readme.txtに記載したスクリーンショットなどの画像を追加します。
readme.txtの「== Screenshots ==」の部分に、「1. /assets/screenshot-1.png」などと記載し、assetsディレクトリ内に同名のファイルを入れておけば、スクリーンショットに表示される形になります。
また、プラグインページや概要に表示されるバナーとアイコンの画像もこちらに追加しておくことで表示されます。
リポジトリへの反映(初回リリース)
ローカルでデータの追加(コピー・移動)が完了したら、subversion上で登録していきます。
svn add assets/* svn add trunk/* svn commit -m "コミットメッセージ(任意)" svn cp trunk tags/1.0.1 svn ci -m "tag version 1.0.1"
上記のようにターミナルから打ち込んでいきます。
ざくっと解説すると、”svn add”で新規ファイルを追加。”*”は配下全てのファイルという指示なので、個別の場合はファイル名を指定すれば良いでしょう。
“svn commit”する段階でユーザ名とパスワードの入力が求められます。
gitで言うところのcommitとpushが一緒になっている模様。
“svn cp trunk tags/1.0.1″では、trunkディレクトリの内容を、tagsディレクトリ内にバージョン毎にコピーしています。
バージョン名は任意のものに変更してください。ちなみに、メインPHPファイルやreadme.txtに記載しているバージョンと同一にしておく必要があります。
最後に”svn ci -m ‘tag version 1.0.1′”でチェックインして完了といった具合です。
コミットした内容は、都度メールで知らせが送られてきます。
しばらくして確認すると、プラグインページに反映されているはずです。また、WordPressの管理画面より検索すれば、リリースしたプラグインが出てくるようになるでしょう。
バナーやアイコン・プラグインの概要(readme.txtの内容)などなど、正しくリリースできているか確認してみましょう。
以上で自作プラグインのリリース完了です!
自作プラグイン変更内容をWordPressプラグイン公式サイトに更新する方法
自作プラグインをリリースした後ですが、WordPress自体のバージョンアップなどにより定期的に更新する必要があります。
プラグインファイルに修正があった場合の更新方法
svn update assets/* svn update trunk/* svn commit -m "コミットメッセージ(任意)" svn cp trunk tags/1.0.2 svn ci -m "tag version 1.0.2"
プラグインファイルに修正があった場合、基本的には新規リリース時とコマンドは変わらないのですが、既存ファイルを更新する場合は、コマンドが”svn update”となることに注意。
バージョンは任意です。
プラグインファイルには修正がなくWordPressのバージョンアップにのみ対応する方法
プラグインをリリースしてみると意外とこのパターンが多いことに気付くわけですが、WordPress自体のバージョンアップに合わせてreadme.txtのみ更新する必要があります。
WordPressのバージョンアップ時、そのバージョンで検証してもプラグインに問題がなかった場合、プラグインファイルを更新する必要はありません。
しかし、そのまま放置してしまうと、「お使いのバージョンの WordPress ではテストされていません」と残念なメッセージが表示されてしまうことになってしまいます。
ということで、対応WordPressバージョンのみ更新する方法です。
ターミナルからtagsディレクトリ内の最新バージョンディレクトリに移動します。
その中にあるreadme.txt内のtested up toを最新のWordPressのバージョンに変更。
svn update readme.txt svn commit -m "コミットメッセージ(任意)"
上記のようにコミットすることで完了です。
まとめ
初めて作成したWordPressプラグイン。
さらにそのプラグインをWordPressプラグイン公式サイト(WordPress.org Plugins)に登録してみました。
調べながら作業してみましたが、申請方法が変わっていたりする部分もありましたね。
何よりプラグインの審査時に修正指示がくるとは思っていませんでした。iOSアプリの申請に比べれば遥かに親切かと!
コメント