プログラミング

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

メールアドレスが公開されることはありません。

関連記事

no image

Pug(旧Jade)テンプレートファイル内で、npmでインストールしたモジュールを使う方法

Pug(旧Jade)というJavaScriptのテンプレートエンジンがありますが、このテンプレートファイル内では JavaScriptが使えるので、複雑なHTMLを生成することができます。 但しデフォ …

Web Workers API を使ったサンプル

Web Workers API を使ったサンプルページです。 目次1. デモページ2. 画面イメージ3. ソースコード4. 参考 1. デモページ デモページ 🔗 Web Worker …

webpack Bootstrap

Webpack 4 (もしくは 3) で Bootstrap v4.0 を利用するサンプルコード

目次1. はじめに2. サンプルコード3. 想定する環境OSその他4. 今回のディレクトリ構造5. 動作させるための手順1. 今回作業するプロジェクトのディレクトリに移動します2. npm のパッケー …

JavaScript でスライドを作ってみました

JavaScript でスライドを作ってみました。 window.history オブジェクトの使い方も参考になるかと思います。 目次1. スクリーンショット2. デモページ3. 内容4. ソースコー …

Gentelella の Sidebar を解析してみました

目次1. はじめに2. サイドバーの形態3. サイドバーの形態のスタイル定義4. ページを開いた時のデフォルト5. トグルアイコンをクリックした時の動作6. サイドバー内の各メニュー項目をクリックした …