acf_validate_values()


Advanced Custom Fields(ACF)のacf_validate_values()関数は、投稿のカスタムフィールドの値が指定されたルールに従っているかどうかを検証するために使用されます。この関数は、カスタムフィールドのデータを検証し、エラーがあればそれを返します。

シンタックス

acf_validate_values( array $values, array $field_groups );

引数の説明:

  • $values (array) — 検証するフィールド値の配列。
  • $field_groups (array) — 検証に使用するフィールドグループの配列。

例1: フィールド値の基本的な検証

特定のフィールド値を検証します。

<?php
$values = array(
    'field_1' => '値1',
    'field_2' => '値2'
);
$field_groups = acf_get_field_groups();
acf_validate_values( $values, $field_groups );
?>

例2: 投稿データの検証

投稿のカスタムフィールドデータを検証します。

<?php
$post_id = get_the_ID();
$values = acf_get_post_field_values( $post_id );
$field_groups = acf_get_field_groups( array( 'post_id' => $post_id ) );
acf_validate_values( $values, $field_groups );
?>

例3: 特定のフィールドグループでの検証

特定のフィールドグループを指定して値を検証します。

<?php
$values = array(
    'field_1' => '値1'
);
$field_groups = array( acf_get_field_group( 'group_key' ) );
acf_validate_values( $values, $field_groups );
?>

例4: カスタムバリデーションエラーの処理

バリデーションエラーをチェックしてカスタムエラーを処理します。

<?php
$values = array(
    'field_1' => '不正な値'
);
$field_groups = acf_get_field_groups();
$errors = acf_validate_values( $values, $field_groups );

if ( ! empty( $errors ) ) {
    foreach ( $errors as $field_key => $error_message ) {
        echo "フィールド{$field_key}にエラー: {$error_message}";
    }
}
?>

例5: 条件付きフィールドの検証

条件付きロジックに基づくフィールド値の検証。

<?php
$values = array(
    'field_1' => '条件付き値'
);
$field_groups = acf_get_field_groups();
if ( acf_validate_values( $values, $field_groups ) === true ) {
    echo "値が正しいです。";
}
?>

注意点

  • この関数はサーバーサイドでのみ使用してください。
  • 検証エラーを正しく処理するために、$errorsの内容を適切にログまたは出力してください。
  • 使用するフィールドグループが正確に取得されていることを確認してください。