ご注意!

この記事には PHP コードが含まれており、開発者を対象としています。このコードは便宜上提供していますが、コードのカスタマイズやサードパーティの開発についてはサポートを提供していません。

追加のガイダンスについては、WPBeginner の カスタムコードの追加方法に関するチュートリアル を参照してください。

閉じる

非表示フィールドの名前属性を変更する方法

はじめに

フォームの隠しフィールドの名前属性を変更する必要はありますか?デフォルトでは、WPFormsはフォームの各フィールドに名前を割り当てます。これは、wpforms[fields][1]のような標準形式を使用します。これにより、フォームの各フィールドは、その特定のフィールドIDに対して一意のままになります。

たとえば、このフォームでは、隠しフィールドを追加しましたが、デフォルトの名前wpforms[fields][25]です。

デフォルトでは、WPFormsはフォームの各フィールドに汎用的な名前を追加します。WPFormsのタイトルをプレフィックスとして使用しますが、フィールドID番号も含まれます。

これらの特定のフィールドをターゲットにするためにJavaScriptまたはCSSを使用できるようにこの名前を変更する必要がある場合は、簡単なPHPフィルターで簡単に変更できます。その方法を説明します!

フォームの作成

まず、フォームを作成し、フィールドを追加します。フォームの作成方法についてサポートが必要な場合は、こちらの役立つドキュメントをご覧ください

このドキュメントの目的上、隠しフィールドの名前を変更したいので、内部使用のためにフォームにこれらのフィールドのいずれかを追加します。

フォームを作成し、1つの隠しフィールドを含むフィールドを追加します。

スニペットの追加

次に、スニペットをサイトに追加します。スニペットをサイトに追加する方法と場所についてサポートが必要な場合は、詳細についてはこちらの役立つガイドをご覧ください

このスニペットでは、フォーム1000内のすべての隠しフィールドを確認し、名前属性をcustom_name_hidden_fieldに更新します。

このフォームIDはご自身のものに合わせて更新する必要があります。または、完全に削除して、すべてのフォームのこれらのタイプのフィールドすべてに適用することもできます。

フォームID番号を見つけるには、こちらの記事をご覧ください

これで、ページ上のマークアップを調べると、nameが変更されていることがわかります。

これで、この属性を正常に変更するために必要なすべてが揃いました。パスワードフィールドのサブラベルも変更しますか?パスワードフィールドのサブラベルを変更する方法のチュートリアルをご覧ください。

フィルターリファレンス: wpforms_field_properties

よくある質問

Q: 他のフィールドタイプにも使用できますか?

A: はい、ただし、Emailのような必須フィールドのname属性の変更は避けてください。WPFormsは、検証と送信のためにデフォルトの構造(wpforms[fields][{$field_id}])に依存しています。これをオーバーライドすると、検証の失敗やdata-server-errorのようなエラーが発生する可能性があります。

代わりに、カスタムdata-*属性を使用してください。たとえば:

function wpf_field_properties_email( $properties, $field, $form_data ) {
  
    // Optional: Limit to a specific form ID
    if ( absint( $form_data[ 'id' ] ) !== 1000) {
        return $properties;
    }

    // Add a custom data attribute instead of modifying the name
    $properties['inputs']['primary']['attr']['data-custom-name'] = 'custom_name_email_field';

    return $properties;
}
add_filter( 'wpforms_field_properties_email', 'wpf_field_properties_email', 10, 3 );