acf_validate_save_post()


WordPressのacf_validate_save_post()は、Advanced Custom Fieldsプラグインでフォーム送信時にデータの検証を行うための関数です。この関数を使用すると、送信されるデータを手動で検証し、必要に応じてカスタムエラーを設定できます。

シンタックス

acf_validate_save_post();
  • acf_validate_save_post()は、送信されたACFフォームデータのカスタム検証を行います。

例 1: カスタムフィールドの空白検証

以下のコードは、特定のフィールドが空白の場合にエラーをスローします。

add_action( 'acf/validate_save_post', function() {
    if ( empty( $_POST['acf']['field_123abc'] ) ) {
        acf_add_validation_error( 'acf[field_123abc]', 'このフィールドは必須です。' );
    }
});

例 2: 数値フィールドの範囲チェック

数値フィールドの値が1〜10の範囲外の場合、エラーを表示します。

add_action( 'acf/validate_save_post', function() {
    $value = $_POST['acf']['field_456def'];
    if ( $value < 1 || $value > 10 ) {
        acf_add_validation_error( 'acf[field_456def]', '値は1から10の間で指定してください。' );
    }
});

例 3: 特定の文字列の検証

指定されたフィールドの値が特定の文字列でない場合にエラーを追加します。

add_action( 'acf/validate_save_post', function() {
    $value = $_POST['acf']['field_789ghi'];
    if ( $value !== '特定の値' ) {
        acf_add_validation_error( 'acf[field_789ghi]', '「特定の値」を入力してください。' );
    }
});

例 4: カスタムエラーをフィールドに追加

特定の条件に基づいて、任意のカスタムエラーを表示します。

add_action( 'acf/validate_save_post', function() {
    if ( true ) { // 条件を指定
        acf_add_validation_error( 'acf[field_custom]', 'カスタムエラーが発生しました。' );
    }
});

例 5: 送信された全データの検証

全体のデータをループして、特定の条件でエラーをスローします。

add_action( 'acf/validate_save_post', function() {
    foreach ( $_POST['acf'] as $field_key => $value ) {
        if ( $value === '' ) {
            acf_add_validation_error( "acf[{$field_key}]", '全てのフィールドを入力してください。' );
        }
    }
});

注意点:

  • この関数はacf/validate_save_postアクション内で使用される必要があります。
  • カスタムエラーを追加する場合、フィールドキーを正確に指定してください。
  • 検証処理が完了しない場合、データの保存は行われません。