wp_check_revisioned_meta_fields_have_changed()


WordPressのwp_check_revisioned_meta_fields_have_changed()関数は、リビジョンされたメタフィールドが変更されたかどうかを確認するために使用されます。この関数は、特定の投稿IDに関連付けられたメタフィールドの変更をチェックし、変更があった場合はtrueを返します。

構文

wp_check_revisioned_meta_fields_have_changed( int $post_id, array $meta_fields );

引数の説明:

  • $post_id(int) — チェックする投稿のID。
  • $meta_fields(array) — チェックするメタフィールドのキーの配列。

例1: 基本的な使用例

この例では、特定の投稿IDに関連付けられたメタフィールドが変更されたかどうかを確認します。

$post_id = get_the_ID(); $meta_fields = array( 'custom_field_1', 'custom_field_2' ); if ( wp_check_revisioned_meta_fields_have_changed( $post_id, $meta_fields ) ) { echo 'メタフィールドが変更されました。'; } else { echo 'メタフィールドは変更されていません。'; }

例2: 複数のメタフィールドをチェック

複数のメタフィールドを一度にチェックする例です。

$post_id = get_the_ID(); $meta_fields = array( 'field_a', 'field_b', 'field_c' ); $changed = wp_check_revisioned_meta_fields_have_changed( $post_id, $meta_fields );

例3: 条件付きで処理を実行

メタフィールドが変更された場合にのみ特定の処理を実行します。

$post_id = get_the_ID(); $meta_fields = array( 'custom_field' ); if ( wp_check_revisioned_meta_fields_have_changed( $post_id, $meta_fields ) ) { // 変更があった場合の処理 }

例4: メタフィールドの変更をログに記録

メタフィールドが変更された場合にログを記録します。

$post_id = get_the_ID(); $meta_fields = array( 'log_field' ); if ( wp_check_revisioned_meta_fields_have_changed( $post_id, $meta_fields ) ) { error_log( 'メタフィールドが変更されました。' ); }

例5: メタフィールドの変更を通知

メタフィールドが変更された場合に管理者に通知します。

$post_id = get_the_ID(); $meta_fields = array( 'notify_field' ); if ( wp_check_revisioned_meta_fields_have_changed( $post_id, $meta_fields ) ) { wp_mail( 'admin@example.com', 'メタフィールド変更通知', 'メタフィールドが変更されました。' ); }

例6: メタフィールドの変更をフックで処理

メタフィールドの変更をフックで処理する例です。

add_action( 'save_post', function( $post_id ) { $meta_fields = array( 'hook_field' ); if ( wp_check_revisioned_meta_fields_have_changed( $post_id, $meta_fields ) ) { // 変更があった場合の処理 } } );

例7: メタフィールドの変更をAjaxで確認

Ajaxを使用してメタフィールドの変更を確認します。

add_action( 'wp_ajax_check_meta_changes', function() { $post_id = $_POST['post_id']; $meta_fields = array( 'ajax_field' ); if ( wp_check_revisioned_meta_fields_have_changed( $post_id, $meta_fields ) ) { echo 'changed'; } else { echo 'not changed'; } wp_die(); } );

注意点

  • この関数はリビジョンが有効な場合にのみ動作します。
  • メタフィールドのキーが正しく指定されていることを確認してください。
  • 大量のメタフィールドをチェックする場合、パフォーマンスに影響を与える可能性があります。

関連機能: