概要
elementor/document/save/data
は、Elementorでドキュメントが保存される際に発火するアクションです。このフックを使用することで、特定のデータを保存したり、独自の処理を実行したりすることができます。一般的にこのアクションは以下のような機能を実装する際によく使われます。
- ユーザーが変更したカスタムメタデータを保存する
- ドキュメントのSEO設定を更新する
- 特定の条件に基づいてコンテンツをフィルタリングする
- 他のシステムと統合するために、データを外部APIに送信する
- サイトのアナリティクス情報を更新する
- 特定のカスタムフィールドでのデータのバリデーションを行う
構文
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'] ) );
}
});