acf_save_post_revision()


WordPressのacf_save_post_revision()関数は、Advanced Custom Fields(ACF)プラグインで使用される関数で、カスタムフィールドのリビジョンを保存するために利用されます。この関数は、投稿のリビジョンが作成される際に、カスタムフィールドのデータも一緒に保存するために使用されます。

構文

acf_save_post_revision( int $post_id );
  • $post_id(int) — リビジョンを保存する投稿のIDを指定します。

例1: 基本的な使用例

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

acf_save_post_revision(get_the_ID());

例2: カスタムフィールドのリビジョンを自動保存

この例では、投稿が更新されるたびにカスタムフィールドのリビジョンを自動的に保存します。

add_action('save_post', function($post_id) { acf_save_post_revision($post_id); });

例3: 特定の投稿タイプでのみリビジョンを保存

この例では、特定の投稿タイプ(例: ‘post’)でのみリビジョンを保存します。

add_action('save_post', function($post_id) { if (get_post_type($post_id) == 'post') { acf_save_post_revision($post_id); } });

例4: リビジョン保存前にカスタムフィールドをフィルタリング

この例では、リビジョンを保存する前にカスタムフィールドの値をフィルタリングします。

add_action('save_post', function($post_id) { $custom_field_value = get_field('custom_field', $post_id); if ($custom_field_value) { acf_save_post_revision($post_id); } });

例5: リビジョン保存後にアクションを実行

この例では、リビジョンが保存された後に特定のアクションを実行します。

add_action('save_post', function($post_id) { acf_save_post_revision($post_id); do_action('after_acf_revision_save', $post_id); });

例6: リビジョン保存時にカスタムフィールドを更新

この例では、リビジョンを保存する際にカスタムフィールドの値を更新します。

add_action('save_post', function($post_id) { update_field('custom_field', 'new_value', $post_id); acf_save_post_revision($post_id); });

例7: リビジョン保存時にログを記録

この例では、リビジョンが保存された際にログを記録します。

add_action('save_post', function($post_id) { acf_save_post_revision($post_id); error_log('ACF revision saved for post ID: ' . $post_id); });

例8: リビジョン保存時にカスタムフィールドを検証

この例では、リビジョンを保存する前にカスタムフィールドの値を検証します。

add_action('save_post', function($post_id) { $custom_field_value = get_field('custom_field', $post_id); if ($custom_field_value == 'valid_value') { acf_save_post_revision($post_id); } });

注意点

  • acf_save_post_revision()は、ACFプラグインが有効になっている場合にのみ使用できます。
  • リビジョンが無効になっている投稿タイプでは、この関数は動作しません。
  • リビジョンを保存する際に、カスタムフィールドの値が正しく設定されていることを確認してください。