1. はじめに
plugin-update-checker を使うと、WordPress の 公式なテーマ ではないテーマに更新通知機能を実装することができます(プラグインとテーマのどちらでも利用できます)。
https://github.com/YahnisElsts/plugin-update-checker/
このツールを使うと、WordPress の公式レポジトリにないプラグインまたはテーマに自動更新機能を実装することができます。
今回は、テーマに対して plugin-update-checker を利用する手順について説明します。
基本的には、YahnisElsts/plugin-update-checker に書いてある内容になります。
2. テーマディレクトリに対する準備作業
- Releases · YahnisElsts/plugin-update-checker から、最新版をダウンロードして解凍します。
- 解凍してできた
plugin-update-checker
ディレクトリを、テーマのディレクトリにコピーします。 functions.php
に以下を記述します。
require get_template_directory() . '/plugin-update-checker/plugin-update-checker.php';
$myUpdateChecker = Puc_v4_Factory::buildUpdateChecker(
'http://example.com/path/to/theme.json', // (A)
__FILE__,
'my-theme-slug' // (B)
);
(A)
のところで、更新情報を記述する JSONファイルのURLを指定しています(以後、更新情報ファイルと呼びます)。このファイルは後で作成しますが、Webでアクセスできるところに配置します。
(B)
では、テーマを表す一意な文字列を指定します。
以上の変更を加えた状態のテーマを、WordPress に導入します。
3. テーマを更新する手順
3-1. テーマ提供者側
- 何かしらテーマの内容が更新されたとします。
style.css
内の「Version
」番号を更新します。(省略) Description: Version: 2.0.0 License: GNU GPL version 2 (省略)
- テーマのディレクトリを zip で圧縮し、そのファイルをWebでアクセス可能なところに設置します。
(C)
- 更新情報に関する詳細説明のHTMLファイルを、Webでアクセス可能なところに設置します。
(D)
-
更新情報ファイルを Webでアクセス可能なところに設置します(さきほど
(A)
で指定したファイルです)。- この中に、圧縮ファイルのURL
(C)
と詳細説明ページのURL(D)
を記述します。 - 以下は更新情報ファイルの記述例です。
{ "version": "2.0", "details_url": "http://example.com/version-2.0-details.html", // (D) "download_url": "http://example.com/my-theme-2.0.zip" // (C) }
- この中に、圧縮ファイルのURL
3-2. 利用者側
- この時点で、テーマ利用者は更新情報を受け取ることができます。
- 12時間毎に更新チェックが実行されます。
- 手動ですぐ更新したい場合は以下を実行します。
- Debug Bar というプラグインを導入します。
- 管理ツールバー上の “Debug” menu をクリックします。
- “PUC (your-slug)” を開きます。
- “Check Now” ボタンをクリックします。
- この操作により、更新が検知されるはずです。
- Debug Bar プラグインは現時点(2018年1月)で8ヶ月更新されていません。
- plugin-update-checker は、Debug Bar プラグインを利用して一部の機能を追加しているようです。
4. おわりに
WordPress が持つテーマ(プラグイン)更新機能は、一時的にサイトをメンテナンスモードにして更新してくれたり、何かファイルに問題があればエラーを出して更新処理を中止してくれたりと、自分でファイルを上書きして更新するより安全です。ですので、公式でないテーマ(やプラグイン)であっても、今回の方法を使って自動更新することのメリットは大きいと思います。