プログラミング

自作テーマに自動更新通知機能を付ける方法

 

初めてWordPressの自作テーマを制作した人や、制作しようとしている人向けの内容になっています。

初めて作った自作テーマはどうしても修正したくなる点が出てくると思います。

しかし、修正のたびに新しい修正データをダウンロードしなければならないのは利用者にとってかなり不便ですよね。

僕自身テーマの制作者として、自作テーマを更新したら公式テーマのように更新通知がきてWordPressの管理画面からワンクリックで更新できるようにしたいと思いました。

調べてみるとライブラリを使用すると簡単にできたので、その方法を紹介していきます。

今回の記事の通りにすれば10分程度で自分のテーマに自動更新通知機能を実装できると思います。

それでは、見ていきましょう。

実装手順

実装手順は以下のようになります。

  1. 必要なものをダウンロード
  2. 最新バージョンを知らせるJSONファイルを作成
  3. 最新バージョンを確認する機能をfunctions.phpに追加
  4. 最新バージョンのテーマファイルをアップロード

必要なものをダウンロード

まずは、自動更新通知機能を実装するために必要になるファイルを準備しましょう。

今回しようするライブラリplugin-update-checker をダウンロードしてください。

上記のページで少しスクロールすると「Getting Started」という見出しの下の「the latest release」というダウンロードリンクがあるので、そこからダウンロードページに飛びましょう。

ダウンロードページ下部の「Asset」のどちらでも良いのでクリックして、ダウンロード完了です。

ダウンロードしたフォルダは解凍して、テーマフォルダの直下に入れておきましょう。

wp-content/themes/T-theme(自作テーマフォルダ)/

index.php、functions.phpなどがある場所ですね。

JSONファイルの作成

それでは、最新バージョンを知らせるためのJSONファイルを作成しましょう。

theme-update.jsonといったわかりやすい名前をつけておきます。

ファイルの中身は以下のようにしましょう。

{
“version”: “1.1”,
“details_url”: “http://~~”,
“download_url”: “http://~~”
}

“version”には最新のバージョンを書いておきましょう。このバージョンより使用バージョンが低いと更新通知がされます。
“details_url”には、自作テーマの解説ページのURLを入れます。
“download_url”には、最新版の自作テーマZIPファイルのダウンロードURLを入れます。管理画面から更新すると、ここから自動で最新版のダウンロードをして更新処理をしてくれます。最新版のテーマファイルアップロードはfunctions.phpの編集後に行います。

完成したJSONファイルはわかりやすい場所にアップロードしておきましょう。

僕の場合は、

wp-content/themes/T-theme/theme-update.json

としています。

functions.phpからURLにアクセスします。

functions.phpを変更

それではfunctions.phpに書き込みをしていきましょう。

//テーマの自動更新通知
require ‘plugin-update-checker-4.6/plugin-update-checker.php’;
$myUpdateChecker = Puc_v4_Factory::buildUpdateChecker(
‘http://〜/theme-update.json’,//更新確認のJSON
__FILE__,
‘T-theme’ //テーマ名
);

require ‘〜’で最初に設置したplugin-update-checker-4.6の中にあるplugin-update-checker.phpを読み込みます。

plugin-update-checker-4.6の4.6というバージョンの部分は適宜変更してください。

その次の行は、更新確認をするためのおまじないですね。

1つ目の引数に先ほどアップロードしたJSONファイルのURLを指定しましょう。

最後の引数はテーマ名です。

この記述によって、先ほどのJSONファイルから最新バージョンを確認し、使用中のものより新しい場合に、更新通知をしてくれるようになります。

これでfunctions.phpの編集は終わりです。

最新版のテーマファイルをアップロードする

functions.phpの編集が終わったら、最新版のテーマファイルをアップロードしましょう。

このアップロード先のURLがJSONファイルで指定した場所と同じになるように注意してください。

これで作業は以上になります。

うまくいかなければ、ファイルに書いたURLにちゃんと目的のものがあるかどうかを、ブラウザにURLを入力して確認してみましょう。

また、WordPressの管理画面から更新が確認できるようになりまで1,2分かかる事があったので、反映されなければ少し待ってみるのもありです。

ちなみに更新通知はこんな感じです。

テーマ選択画面から簡単に更新ができるようになります。

自動更新通知機能のあるテーマを配布する

今回実装した更新通知機能は、functions.phpへの記述がないと正常に機能しません。なので、すでにテーマを配布してしまっている場合は、編集したfunctions.phpを含むテーマファイルをダウンロードしてもらう必要があります。

これからテーマを配布する人は、最初から今回の記事の作業をしておくことで、テーマを利用する人は一度ダウンロードするだけで常に最新版を使えるようになります。

簡単に実装できて、テーマを使用してくれる人たちにとって非常に便利な機能なので、今回の記事を参考に実装してみてください。

何かわからないことがあれば、Twitterで気軽にメッセージお願いいたしますm(__)m

 

参考にしたサイト

YahnisElsts/plugin-update-checker – Github

[WordPress] 自作テーマにアップデート通知機能を付けるカスタマイズ方法

WordPressオリジナルテーマを管理画面で更新可能にする方法。