acf_parse_save_blocks_callback()


WordPressのacf_parse_save_blocks_callback()関数は、Advanced Custom Fields (ACF)プラグインを使用して、保存されるカスタムブロックデータを処理するコールバック関数です。

構文

acf_parse_save_blocks_callback( string $block_name, array $block_data );

引数の説明:

  • $block_name (string) — ブロックの名前
  • $block_data (array) — 保存されるブロックのデータ

例1: ACFブロックデータの変更

ACFブロックの保存時にデータを変更する基本的なコードです。

function custom_acf_parse_save( $block_name, $block_data ) {
    if( $block_name === 'acf/example-block' ) {
        $block_data['example_field'] = '変更されたデータ';
    }
    return $block_data;
}
add_filter( 'acf_parse_save_blocks_callback', 'custom_acf_parse_save', 10, 2 );

例2: データの検証

保存されるデータが特定の条件を満たしているかを検証する例です。

function validate_acf_data( $block_name, $block_data ) {
    if( empty( $block_data['required_field'] ) ) {
        return new WP_Error( 'validation_error', '必須フィールドが未入力です。' );
    }
    return $block_data;
}
add_filter( 'acf_parse_save_blocks_callback', 'validate_acf_data', 10, 2 );

例3: エラーハンドリング

データ保存時にエラーを処理する方法です。

function handle_save_errors( $block_name, $block_data ) {
    if( isset( $block_data['error_field'] ) ) {
        return new WP_Error( 'save_error', 'エラーが発生しました。' );
    }
    return $block_data;
}
add_filter( 'acf_parse_save_blocks_callback', 'handle_save_errors', 10, 2 );

例4: データのフィルタリング

ブロックデータをフィルタリングして、特定の値を変更する方法です。

function filter_acf_data( $block_name, $block_data ) {
    if( isset( $block_data['text_field'] ) ) {
        $block_data['text_field'] = strtoupper( $block_data['text_field'] );
    }
    return $block_data;
}
add_filter( 'acf_parse_save_blocks_callback', 'filter_acf_data', 10, 2 );

例5: データの追加

保存前にブロックデータに追加の情報を加える方法です。

function add_extra_data( $block_name, $block_data ) {
    $block_data['extra_field'] = '追加情報';
    return $block_data;
}
add_filter( 'acf_parse_save_blocks_callback', 'add_extra_data', 10, 2 );

注意点

  • エラーが発生した場合は、WP_Errorオブジェクトを返すことができます。
  • 関数はacf_parse_save_blocks_callbackフィルターフックを使用して追加されます。

関連機能: