プログラミング

plugin-update-checker を使って WordPress のテーマに自動更新機能を実装する

投稿日:2018年1月26日 更新日:

1. はじめに

plugin-update-checker を使うと、WordPress の 公式なテーマ ではないテーマに更新通知機能を実装することができます(プラグインとテーマのどちらでも利用できます)。

YahnisElsts/plugin-update-checker
https://github.com/YahnisElsts/plugin-update-checker/

このツールを使うと、WordPress の公式レポジトリにないプラグインまたはテーマに自動更新機能を実装することができます。

今回は、テーマに対して plugin-update-checker を利用する手順について説明します。

基本的には、YahnisElsts/plugin-update-checker に書いてある内容になります。

2. テーマディレクトリに対する準備作業

  1. Releases · YahnisElsts/plugin-update-checker から、最新版をダウンロードして解凍します。
  2. 解凍してできた plugin-update-checker ディレクトリを、テーマのディレクトリにコピーします。
  3. 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. テーマ提供者側

  1. 何かしらテーマの内容が更新されたとします。
  2. style.css 内の「Version」番号を更新します。
    (省略)
    Description:
    Version: 2.0.0
    License: GNU GPL version 2
    (省略)
    
  3. テーマのディレクトリを zip で圧縮し、そのファイルをWebでアクセス可能なところに設置します。(C)

  4. 更新情報に関する詳細説明のHTMLファイルを、Webでアクセス可能なところに設置します。(D)
  5. 更新情報ファイルを 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)
    }
    

3-2. 利用者側

  • この時点で、テーマ利用者は更新情報を受け取ることができます。
  • 12時間毎に更新チェックが実行されます。
  • 手動ですぐ更新したい場合は以下を実行します。
    1. Debug Bar というプラグインを導入します。
    2. 管理ツールバー上の “Debug” menu をクリックします。
    3. “PUC (your-slug)” を開きます。
    4. “Check Now” ボタンをクリックします。
      • この操作により、更新が検知されるはずです。
Debug Bar の利用について

  • Debug Bar プラグインは現時点(2018年1月)で8ヶ月更新されていません。
  • plugin-update-checker は、Debug Bar プラグインを利用して一部の機能を追加しているようです。

4. おわりに

WordPress が持つテーマ(プラグイン)更新機能は、一時的にサイトをメンテナンスモードにして更新してくれたり、何かファイルに問題があればエラーを出して更新処理を中止してくれたりと、自分でファイルを上書きして更新するより安全です。ですので、公式でないテーマ(やプラグイン)であっても、今回の方法を使って自動更新することのメリットは大きいと思います。

📂-プログラミング
-,

執筆者:labo


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

React Redux

React + Redux の最小限の雛形コード

この記事に載せている JavaScriptのコードは、React + Redux を使っています。 但し、まだ何も意味のある処理を書いていないので、このままだと 属性 id=”root” を持った要素 …

Canvas と WebGL を使ったサンプルページを作りました

Canvas と WebGL を使ったサンプルページを作りました 目次1. スクリーンショット2. デモページ3. 内容4. ソースコード5. 参考情報 1. スクリーンショット スクリーンショット …

web development

Web Development for Beginners を読む:レッスン18, 19, 20

目次1. はじめに2. Part 4: レーザーと衝突検知を追加する(1) 衝突検知のための「オブジェクトの四角形表現を返す関数」を用意する(2) 衝突検知の判定関数を追加する(3) レーザー発射機能 …

CSS Flexible Box Layout Module のサンプルページを作りました

CSS Flexible Box Layout Module のサンプルページを作りました。 目次1. スクリーンショット2. デモページ3. 内容4. ソースコード5. 参考情報 1. スクリーンシ …

React Redux

React と Redux を使ったウェブページのサンプルその1

React と Redux を使ってウェブページのサンプルを作ってみました。以下のURLからアクセスすることがでます。 デモページ 🔗 React + Redux のサンプル002 こ …