WordpressのAdvanced Custom Fieldsプラグインを使ってフィールドを検証するときに、次のような問題があります。何が起こるかというと、フィールドは正しく検証されていますが、検証しているフィールドの上の同じページに移動するのではなく、新しいページにエラーが表示されます。検証するコードは次のとおりです。
function validate_fields_contact()
{
add_filter('acf/validate_value/name=phone_contact', 'validate_phone_number', 10, 4);
}
function validate_phone_number($valid, $value, $field, $input)
{
if (!$valid) {
return $valid;
}
if(!preg_match("/^\+XX(\s|\d){8,12}$/", $value)) {
return __('Incorrect Format.');
}
return true;
}
それはそのようなはずです:
これが起こるのです
私は同じ問題を抱えていました。そして答えのために十分な時間を無駄にしました。
まず次のことを確認してください。
Ajaxリクエストは失敗することなく起こります。だから、チェック:
( このACFサポートトピック も参照してください。新しいユーザーを作成するためにacf_form()を使用する場合は、 このトピック を参照してください。
しかし私の場合、この行のルートはis_admin()で 'acf/validate_value'フックに入りました。
if ( ! $valid || is_admin() ) { return $valid; }
is_admin()はAJAX requestsによって 'true'を返すので 。その結果、検証機能は機能しませんでした。
誰かに役立つことを願っています。