WordPressの公式ディレクトリに登録されているテーマには、更新通知機能があります。
更新通知機能というのは、バージョンアップがあるたびにテーマ画面で以下のような通知が届く機能です。
その上、更新画面から更新すると、テーマが自動的に上書きされアップデートされます。
以前、この機能が便利そうなので、テーマを公式ディレクトリに登録できるのか調べてみたところ、「見た目をつかさどる機能以外が余分についているテーマ」は、登録できないことを知りました。
それから、更新通知機能を付けることは諦めていたのですが、先日フォーラムで、野良テーマでも通知機能を取り付けられることを教えてもらいました。
そこで、その方法をやってみたら、思った以上に簡単に実装することができたので、そのカスタマイズ方法を紹介です。
photo by Brian Fitzgerald
目次
主な手順
自作のテーマに更新通知機能&アップデート機能をつける主な手順は以下の3手順です。
- ライブラリのダウンロードと設置
- 更新情報となるJSONファイルを作成
- functions.phpにコードを記述
「更新通知機能を実装」というだけで、かなり難しいものを想像していたのですが、ライブラリがとても扱いやすいものになっています。
ですので、Wordpressコードの編集に慣れている方ならば、10分ほどでできるほど簡単な方法です。
ライブラリのダウンロードと設置
まずは、更新通知機能のライブラリをダウンロードします。
ダウンロードは、Automatic Updates For Private And Commercial Themesの「Client library」リンクから行ってください。
ダウンロードすると「theme-updates.zip」というファイルになります。
解凍すると中には「theme-update-checker.php」というファイルだけが入っているので、これをテーマディレクトリ直下にコピペします。
ファイルの設置はこれだけです。
更新情報となるJSONファイルを作成
次に、更新通知の情報元となるJSONファイルを作成し、パブリックなサーバーに設置します。
JSONファイルの作成
まずは、新しいファイルを作成して「update-info.json」とでも名前をつけてください。
作成したファイルを、エディターなどで開いて更新情報を記述します。
JSONファイルの中身は以下のように書きます。
{ "version" : "2.0", "details_url" : "http://example.com/example-theme/details.html", "download_url" : "http://examle.com/example-theme/example-theme.zip" }
2行目(version)には、テーマのバージョンを記述します。
このバージョンが現在のバージョンより上がっていれば、ライブラリが最新テーマがあることを感知して、更新情報が通知されます。
3行目(details_url)には、更新情報が書かれたページのURLなどを記述します。
ブログなどの更新情報を書いたページのURLなどを記述しておけば良いと思います。
ここに設定されたURLは、更新通知情報の以下の部分で活用されます。
4行目(download_url)には、バージョンアップしたテーマファイルのURLを記述します。
JSONファイルをサーバーに設置
あとは、作成した「update-info.json」ファイルをパブリックなサーバーにアップロードしておきます。
ここで設置した場所のURLをメモっておいてください。
functions.phpにコードを記述
最後に、functions.phpに、ちょろっとコードを記述します。
記述するコード例は以下です。
//アップデートチェックの初期化 require 'theme-update-checker.php'; //ライブラリのパス $example_update_checker = new ThemeUpdateChecker( 'example-theme', //テーマフォルダ名 'http://example.com/example-theme/update-info.json' //JSONファイルのURL );
これまで、やってきた通りの手順であれば、4行目と5行目を変更するだけで良いと思います。
4行目の、テーマフォルダ名は、あなたのテーマがWordpressのthemesフォルダ内にある時のフォルダ名を記述します。
5行目の、JSONファイルのURLは、先程サーバーのパブリックな場所にアップロードしたJSONファイルのURLを記述します。
これで、更新通知&アップデート機能が実装されました。簡単ですね。
参考 WordPressのオリジナルテーマ(プラグイン)を公式ディレクトリ以外から配信する方法
動作確認
あとは、Wordpress管理画面の「外観→テーマ」などから動作を確認します。
以下のような、更新通知が来ていたらOKです。
ただ、テーマの更新情報はすぐには反映されないこともあります。
そういった場合は、「ダッシュボード→更新」などを開いて「もう一度確認する」ボタンなどをクリックしてみてください。
更新ページのテーマアップデート情報に自作テーマが反映されていれば、正常動作しています。
あとは、テーマを選択して「テーマの更新」ボタンを押せば、自動で上書きアップデートされます。
まとめ
自作テーマに更新通知機能をつけるには、「Wordpress公式ディレクトリに登録する」か「難しいコードを長々と書く必要がある」と考えていました。
けれど、これほど簡単なカスタマイズで実装できるとは思っていませんでした。このように簡単にできるのも、ほとんどライブラリのおかげです。
ライブラリのページには、さらなる詳細情報、デモテーマ、設定例となるJSONファイルも掲載されているので参考にしてみてください。
あと、野良プラグイン用のライブラリもあります。
テーマ更新通知実装おめでとうございます!
一生懸命情報収集して大変良かったです。