wp_save_revisioned_meta_fields()


WordPressのwp_save_revisioned_meta_fields()関数は、リビジョンが保存される際に、指定されたメタフィールドの値をリビジョンとして保存するために使用されます。この関数は、カスタムフィールドのリビジョン管理をサポートするために役立ちます。

構文

wp_save_revisioned_meta_fields( int $post_id, array $fields );

引数の説明:

  • $post_id(int) — リビジョンを保存する投稿のID。
  • $fields(array) — リビジョンとして保存するメタフィールドのキーの配列。

例1: 基本的な使用法

この例では、投稿IDとメタフィールドのキーを指定して、リビジョンを保存します。

wp_save_revisioned_meta_fields( get_the_ID(), array( 'custom_field_key' ) );

例2: 複数のメタフィールドをリビジョンとして保存

複数のメタフィールドをリビジョンとして保存する例です。

wp_save_revisioned_meta_fields( get_the_ID(), array( 'field1', 'field2', 'field3' ) );

例3: カスタム投稿タイプでの使用

カスタム投稿タイプでリビジョンを保存する例です。

wp_save_revisioned_meta_fields( get_the_ID(), array( 'custom_meta_key' ) );

例4: フィルターフックとの併用

フィルターフックを使用して、リビジョン保存前にメタフィールドを変更する例です。

add_filter( 'wp_save_revision_meta_keys', function( $keys ) { $keys[] = 'custom_field'; return $keys; } );

例5: リビジョン保存時の条件分岐

特定の条件でリビジョンを保存する例です。

if ( get_post_meta( get_the_ID(), 'custom_field', true ) === 'value' ) { wp_save_revisioned_meta_fields( get_the_ID(), array( 'custom_field' ) ); }

例6: リビジョン保存後のアクション

リビジョン保存後に特定のアクションを実行する例です。

add_action( 'save_post', function( $post_id ) { wp_save_revisioned_meta_fields( $post_id, array( 'custom_field' ) ); } );

例7: メタフィールドのリビジョン比較

リビジョン間でメタフィールドの値を比較する例です。

$revisions = wp_get_post_revisions( get_the_ID() ); foreach ( $revisions as $revision ) { $meta_value = get_post_meta( $revision->ID, 'custom_field', true ); echo $meta_value; }

注意点

  • この関数は、リビジョンが有効になっている投稿タイプでのみ動作します。
  • メタフィールドのキーが正しく指定されていることを確認してください。
  • リビジョン保存時にパフォーマンスに影響を与える可能性があるため、大量のメタフィールドを扱う場合は注意が必要です。

関連機能: