プラグインElementorのelementor/document/save/dataアクションの使用方法・解説

概要

elementor/document/save/dataは、Elementorでドキュメントが保存される際に発火するアクションです。このフックを使用することで、特定のデータを保存したり、独自の処理を実行したりすることができます。一般的にこのアクションは以下のような機能を実装する際によく使われます。

  1. ユーザーが変更したカスタムメタデータを保存する
  2. ドキュメントのSEO設定を更新する
  3. 特定の条件に基づいてコンテンツをフィルタリングする
  4. 他のシステムと統合するために、データを外部APIに送信する
  5. サイトのアナリティクス情報を更新する
  6. 特定のカスタムフィールドでのデータのバリデーションを行う

構文

do_action( 'elementor/document/save/data', $document, $data );

パラメータ

  • $document: 保存されたドキュメントのElementorドキュメントオブジェクト
  • $data: 保存されるデータに関連する配列

戻り値

このアクションは何も戻しません。処理結果はアクション内で直接処理する必要があります。

ElementorのバージョンとWordPressのバージョン

  • Elementorのバージョン: 3.0 以降
  • WordPressのバージョン: 5.0 以降

この関数のアクションでの使用可能性

アクション 使用可否
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

サンプルコード

サンプルコード1: カスタムメタデータの保存

このコードは、Elementorドキュメントが保存されたときにカスタムメタデータを保存します。

add_action( 'elementor/document/save/data', function( $document, $data ) {
    $meta_value = isset( $data['custom_meta_key'] ) ? $data['custom_meta_key'] : '';
    update_post_meta( $document->get_main_id(), 'custom_meta_key', $meta_value );
});

サンプルコード2: SEO設定の更新

このコードは、ドキュメントが保存される際にSEO関連の設定を更新します。

add_action( 'elementor/document/save/data', function( $document, $data ) {
    if ( isset( $data['seo_meta'] ) ) {
        update_post_meta( $document->get_main_id(), 'seo_meta', $data['seo_meta'] );
    }
});

サンプルコード3: 外部APIへのデータ送信

このコードは、ドキュメントが保存される際に外部APIにデータを送信します。

add_action( 'elementor/document/save/data', function( $document, $data ) {
    $response = wp_remote_post( 'https://example.com/api', [
        'body' => json_encode( $data ),
        'headers' => [ 'Content-Type' => 'application/json' ],
    ]);
});

サンプルコード4: アナリティクス情報の更新

このコードは、ドキュメントが保存されたときにアナリティクス情報を更新します。

add_action( 'elementor/document/save/data', function( $document, $data ) {
    $analytics_data = [ 'id' => $document->get_main_id(), 'timestamp' => time() ];
    update_option( 'analytics_data', $analytics_data );
});

サンプルコード5: データのバリデーション

このコードは、保存されるデータをバリデートし、有効場合のみ保存します。

add_action( 'elementor/document/save/data', function( $document, $data ) {
    if ( isset( $data['field'] ) && !empty( $data['field'] ) ) {
        update_post_meta( $document->get_main_id(), 'field', sanitize_text_field( $data['field'] ) );
    }
});

この関数について質問する


上の計算式の答えを入力してください