Duplicator Pro プラグインフック
Duplicator Pro プラグインを使用すると、開発者は実行サイクルの特定のイベントにアクセスできます。以下は、Duplicator Pro バージョン 4.5.2 以降でサポートされている利用可能なフックの簡単なガイドです。
フック
Duplicator Pro で使用できるフックは次のとおりです。
| フック | 説明 |
|---|---|
| ビルド開始前の重複作成ツール | 手動およびスケジュールされたビルドの両方で、ビルドプロセスが開始される直前にトリガーされます。 |
| ビルド完了の重複作成ツール | 手動およびスケジュールされたビルドの両方で、ビルドプロセスの最後にトリガーされます。 |
| ビルド失敗の重複作成ツール | 手動およびスケジュールされたビルドの両方で、ビルドが失敗したときにトリガーされます。 |
| インストール後の初回ログイン | インストールが正常に実行され、ユーザーが初めて WordPress 管理画面にアクセスした後にトリガーされます。 |
セットアップ
フックはさまざまな場所に設定できます。すぐに始めるには、テーマの functions.php ファイルに追加するのが最も簡単な方法です。カスタムプラグインまたは商用プラグインからフックを追加することもできます。Duplicator Pro フックは WordPress の add_action 呼び出しを使用するため、WordPress PHP スタックのどこでも使用できます。
クイックスタート
フックを設定し、WordPress サイトで機能していることを確認するには、次の手順に従ってください。
- アクティブなテーマの functions.php ファイルを開きます。
- ファイルの末尾に次のコードを追加します。
// ビルド開始前の関数コールバック
function __duplicator_pro_build_before_start_test_function() {
$var = "------------------------------------------------";
$var .= "テスト中: duplicator_pro_build_before_start フック";
$var .= "------------------------------------------------";
error_log(print_r($var, true));
}
// ビルド完了関数コールバック
function __duplicator_pro_build_completed_test_function() {
$var = "------------------------------------------------";
$var .= "テスト中: duplicator_pro_build_before_start フック";
$var .= "------------------------------------------------";
error_log(print_r($var, true));
}
// アクションの追加
add_action('duplicator_pro_build_before_start', '__duplicator_pro_build_before_start_test_function');
add_action('duplicator_pro_build_completed', '__duplicator_pro_build_completed_test_function');
3. バックアップを作成して、ビルドフックをトリガーします。
4. PHP エラーまたはデバッグログファイルを開いて、関数の結果を確認します。
サンプル
以下は、さまざまなフックのサンプルコードです。これらの例は、ニーズに合わせてカスタマイズできます。
サンプル 1: バックアップ作成前に一時データをクリーンアップする。
この例では、バックアップを作成する前に一時データをクリーンアップする方法を示しています。
function deleteAllTransientsOnPackageCreation() {
global $wpdb;
$sql = 'DELETE FROM ' . $wpdb->options . ' WHERE option_name LIKE "_transient_%"';
$wpdb->query($sql);
}
add_action('duplicator_pro_build_before_start', 'deleteAllTransientsOnPackageCreation');
サンプル 2: ビルドステータスを外部API(例: Slack)にログ記録する
この例では、Slack のような外部 API にビルドステータスをログ記録する方法を示しています。
function sendSlackMessage($msg) {
// Slack Webhook API を参照 (https://api.slack.com/messaging/webhooks)
$slackWebhook = 'https://hooks.slack.com/services/[XXX]/[YYY]/[ZZZ]';
$postfields = array('payload' => json_encode(array('text' => $msg)));
$ch = curl_init($slackWebhook);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
curl_exec($ch);
curl_close($ch);
}
function sendSlackStartMessage(DUP_PRO_Package $package) {
sendSlackMessage("DUPLICATOR BUILD START [" . date("Y-m-d H:i:s") . "] Package name: " . $package->Name);
}
function sendSlackFailMessage(DUP_PRO_Package $package) {
sendSlackMessage("DUPLICATOR BUILD FAIL Package name: " . $package->Name);
}
function sendSlackCompleteMessage(DUP_PRO_Package $package) {
sendSlackMessage("DUPLICATOR BUILD COMPLETE [" . date("Y-m-d H:i:s") . "] Package name: " . $package->Name);
}
add_action('duplicator_pro_build_before_start', 'sendSlackStartMessage');
add_action('duplicator_pro_build_fail', 'sendSlackFailMessage');
add_action('duplicator_pro_build_completed', 'sendSlackCompleteMessage');
これらのサンプルは、Duplicator Pro フックの柔軟性とパワーを示しています。特定のニーズに合わせてカスタマイズし、他のシステムやサービスと統合することができます。