_acf_do_save_post()


WordPressの関数_acf_do_save_post()は、Advanced Custom Fields (ACF) プラグインの保存プロセス中に呼び出されるフック関数です。

シンタックス

_acf_do_save_post( int $post_id );
  • $post_id (int) — 投稿のID。保存される投稿に関連付けられたID。

使用例 1: 投稿保存時にカスタム処理を実行

投稿が保存される際にカスタムフィールドに対して特定の処理を追加します。

add_action('acf/save_post', function( $post_id ) {
    if( $post_id === 'options' ) return; // オプションページの保存をスキップ
    _acf_do_save_post($post_id); // 保存処理を呼び出し
}, 10, 1);

使用例 2: ACFの保存後に追加処理を行う

ACFのカスタムフィールドが保存された後に、別のデータを保存します。

add_action('acf/save_post', function( $post_id ) {
    // 投稿が保存されるときにのみ実行
    if( get_post_type( $post_id ) !== 'post' ) return;
    update_post_meta( $post_id, '_custom_meta_key', 'custom value' );
}, 20, 1);

使用例 3: ACF保存時に条件をチェック

特定の条件に基づいてカスタムフィールドの保存を調整します。

add_action('acf/save_post', function( $post_id ) {
    if( get_post_status( $post_id ) !== 'publish' ) return;
    _acf_do_save_post($post_id); // 公開されている投稿のみ処理
}, 10, 1);

使用例 4: オプションページでの保存を無視

オプションページの場合、保存処理を無視します。

add_action('acf/save_post', function( $post_id ) {
    if( $post_id === 'options' ) return; // オプションページの場合は保存を行わない
    _acf_do_save_post($post_id);
}, 10, 1);

使用例 5: 投稿IDを基に保存を調整

特定の投稿IDに対してのみ処理を実行します。

add_action('acf/save_post', function( $post_id ) {
    if( $post_id != 123 ) return; // 投稿IDが123の場合のみ処理
    _acf_do_save_post($post_id);
}, 10, 1);

注意点:

  • この関数はACFが保存するデータの処理に関与しているため、誤った使用は予期しない結果を引き起こす可能性があります。
  • 保存処理の中で無限ループを防ぐため、条件を慎重に設定する必要があります。