GitHub管理のプライベートWordPressプラグインをテストし、バージョンアップを行う方法

WordPressプラグインを開発する際、GitHubでプラグインを管理し、インストールしたユーザーにのみアップデート通知を送りたいケースがあります。今回は、GitHubでプライベートリポジトリを使い、WordPressプラグインのテストとバージョンアップの仕組みを導入する方法を紹介します。

1. プラグインのバージョン管理

プラグインのバージョンは、WordPressが提供するプラグインのヘッダー部分で管理します。まず、プラグインのファイルにバージョン情報を正しく設定する必要があります。例として、以下のように記述します:

/*
Plugin Name: Your Plugin Name
Version: 1.0.0
Description: プラグインの簡単な説明
Author: あなたの名前
*/

次にバージョンが更新された際には、Versionの値を新しいものに変更します(例:Version: 1.1.0)。

2. バージョンアップの仕組み

プラグインがアップデートされた際に、データベースやファイルの変更を反映させる必要があります。以下のステップで、バージョンアップを行うプロセスを実装します。

2.1 現在のバージョンの保存

プラグインの有効化時に現在のバージョンを保存します。以下のコードで、WordPressのwp_optionsテーブルにバージョン情報を記録します。

function your_plugin_activate() {
    $version = '1.0.0'; // 現在のプラグインバージョン
    update_option('your_plugin_version', $version);
}
register_activation_hook(__FILE__, 'your_plugin_activate');
2.2 バージョンアップ時の処理

プラグインが更新された際に、新しいバージョンに対応した処理を行います。

function your_plugin_update_check() {
    $current_version = get_option('your_plugin_version');
    $new_version = '1.1.0'; // 新しいバージョン

    if (version_compare($current_version, $new_version, '<')) {
        // アップデート処理
        your_plugin_update_process($current_version, $new_version);
        // バージョンを更新
        update_option('your_plugin_version', $new_version);
    }
}

function your_plugin_update_process($current_version, $new_version) {
    if (version_compare($current_version, '1.1.0', '<')) {
        // 1.1.0へのアップデート処理(例:データベースの更新)
    }
}

add_action('plugins_loaded', 'your_plugin_update_check');

3. GitHubでプラグインを管理する

プライベートなGitHubリポジトリにプラグインをホストし、バージョンアップの際にリリースを管理します。WordPressからプラグインを更新できるようにするためには、GitHub Updaterというプラグインを利用するのが便利です。手順は以下の通りです。

3.1 GitHub Updaterプラグインの利用

プラグインに自動更新機能を追加するため、GitHub Updaterのサポートを組み込みます。以下のようにプラグインのヘッダーにGitHub情報を追加します:

/*
Plugin Name: Simple Version Plugin
Plugin URI: https://your-website.com
Version: 1.0.0
Author: Your Name
GitHub Plugin URI: https://github.com/your-username/simple-version-plugin
GitHub Access Token: your-github-personal-access-token
*/
3.2 GitHub APIトークンの設定

GitHubのプライベートリポジトリにアクセスするためには、GitHubのAPIトークンが必要です。GitHubでPersonal Access Tokenを作成し、プラグイン内でそのトークンを設定します。

4. アップデート通知の実装

GitHub Updaterプラグインが有効化されると、WordPressはGitHubリポジトリのバージョンと、インストール済みのプラグインバージョンを比較します。新しいバージョンがリリースされている場合、WordPressのダッシュボードにアップデート通知が表示されます。この通知はプラグインをインストールしているユーザーにのみ表示され、他のユーザーには通知されません。

5. テストの流れ

  1. プラグインをGitHubにプッシュし、リリースを作成。
  2. WordPressの管理画面に戻り、更新通知が表示されることを確認。
  3. 更新後、プラグインが正しく機能しているか確認(例:バージョン情報が正しく表示されるか、データベース更新が適用されたかなど)。

これで、GitHubで管理するプライベートWordPressプラグインのテストとバージョンアップの設定が完了です。

この記事を書いた人

田島 佑清

2児の父 / ネクストメディア株式会社のエンジニア