WordPressの公式ディレクトリに登録をしていない、自作テーマやプラグインに更新通知(アップデート通知)を追加してみます。すでに世の中に素敵なライブラリがあるので、実装はびっくりするほど簡単でした。
あの有名なテーマやアフィリエイト向けプラグインも、この方法で更新通知(アップデート通知)を出すようにしていますので、今回の方法はそれと同じ仕組みを利用しています。
プラグイン自体の作成方法については、以下の記事を先に見てくださいね。
手順
以下の通りに進めていきましょう。
GitHubから更新通知(アップデート通知)を実装するためのライブラリ「Plugin Update Checker」をダウンロードしてきます。
ライセンスはMITライセンスです。
plugin-update-checker-master.zip
というファイルがダウンロードできますので、ダウンロードしたファイルを解凍(展開)し、展開したファイル一式をフォルダごと、作成したテーマやプラグインのフォルダ内に含めます。フォルダ名は適当に変更していただいてOKです。
ライブラリ自体の総容量は、2021年3月18日時点で366KBです。
テーマのfunctios.php
、またはプラグインのPHPファイル(たとえばプラグインのフォルダ名がmy-plugin
であれば、my-plugin.php
)に以下のコードを追記します。
//更新の確認
require 'updater/plugin-update-checker.php';
$ExampleUpdateChecker = Puc_v4_Factory::buildUpdateChecker(
'https://tecchan.jp/wp-update/my-plugin-version.json',
__FILE__,
'my-plugin'
);
上記は、先程のように展開したファイル一式のフォルダ名をupdator
に変更した場合の方法です。設定したフォルダ名に合わせて、適宜require
から始まる行のパスを変更してください。
また、4行目のURLは、STEP3で自分がテーマやプラグインを配布するレンタルサーバーなどに配置するJSONファイルを設置する場所を指定します。間違えないようにしましょう。
6行目の'my-plugin'
は、テーマもしくはプラグインの名前(一意な文字列)を付けます。
テーマやプラグインを配布するときに、ダウンロードファイルを設置するURLを決めると思いますが、それとは別にテーマやプラグインの更新通知(アップデート通知)を出すためのJSONファイルを設置します。ファイルの拡張子は.json
にします。
{
"name": "my-plugin",
"version": "1.1.0",
"download_url": "https://tecchan.jp/wp-files/my-plugin.zip"
}
順番に、テーマ・プラグイン名とバージョンとテーマ・プラグインのダウンロードURL(ダウンロードファイルのありか)を記載していきます。
ここで設置されたJSONファイルと、プラグインのPHPファイルやテーマのstyle.css
に記載されたバージョンとを比べて、「更新があるかどうか」をチェックしています。
JSONファイルとstyle.css
に記述されたバージョン情報が同じであれば、更新通知は行われません。style.css
に記述されたバージョン情報よりもJSONファイルに記述されたバージョン情報が新しくなることで、更新通知が行われます。
実際に更新通知(アップデート通知)が出るかどうかを試してみましょう。WordPress管理画面には、以下のように更新ありの数が記載され、
プラグインやテーマの一覧には、以下のように「更新がある」旨が表示されるはずです。
これで上手くいきました。
注意点
公式ディレクトリに登録しているものとの違いがあり、テーマの場合もプラグインの場合もそれ自体にバージョンアップ版があるかどうかを調べるライブラリを追加するため、有効化しているときにしか更新通知がされません(公式ディレクトリに登録しているものは、無効化しているテーマやプラグインにも更新通知が届きます)。