Duplicator Pro プラグインは、その実行サイクル中に特定のイベントにアクセスすることができます。ここでは、Duplicator Proバージョン4.5.2以上でサポートされている、利用可能なフックについて簡単に説明します。
フック
Duplicator Proで使えるフックをご紹介します:
フック | 説明 |
---|---|
duplicator_pro_build_before_start。 | 手動ビルドとスケジュールビルドの両方で、ビルドプロセス開始直前にトリガーされる。 |
複製プログラム作成完了 | 手動ビルドとスケジュールビルドの両方で、ビルドプロセスの最後にトリガーされる。 |
デュプリケーター_プロ_ビルド_失敗 | 手動ビルドとスケジュールビルドの両方でビルドが失敗したときにトリガーされる。 |
duplicator_pro_インストール後の初ログイン | インストールが正常に実行され、ユーザーがWordPress管理画面に初めてアクセスした後にトリガーされます。 |
セットアップ
フックはさまざまな場所で設定できます。一番手っ取り早い方法は、テーマのfunctions.phpファイルに追加することです。また、カスタムまたは商用プラグインからフックを追加することもできます。Duplicator ProのフックはWordPressのadd_actionコールを使用するので、WordPressのPHPスタックのどこでも使用できます。
クイックスタート
フックを設定し、WordPressサイトで動作することを確認するには、以下の手順に従ってください:
- アクティブなテーマのfunctions.phpファイルを開きます。
- ファイルの一番下に以下のコードを追加する:
// Before build starts function callback
function __duplicator_pro_build_before_start_test_function() {
$var = "------------------------------------------------";
$var .= "Testing: duplicator_pro_build_before_start hook";
$var .= "------------------------------------------------";
error_log(print_r($var, true));
}
// Build completes function callback
function __duplicator_pro_build_completed_test_function() {
$var = "------------------------------------------------";
$var .= "Testing: duplicator_pro_build_before_start hook";
$var .= "------------------------------------------------";
error_log(print_r($var, true));
}
// Add Actions
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) {
// See 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フックの柔軟性とパワーを示しています。特定のニーズに合わせてカスタマイズし、他のシステムやサービスと統合することができます。