ご注意!

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

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

閉じる

リッチテキストフィールドの文字数を制限する方法

はじめに

リッチテキストフォームフィールドの文字数を制限しますか?一行テキストおよび段落フォームフィールドには、このフィールドの文字数または単語数を制限する機能が組み込まれています。詳細については、こちらの役立つガイドをご覧ください

ただし、リッチテキストフォームフィールドの文字数を制限したい場合は、簡単なスニペットを使用できます。このチュートリアルでは、その方法を説明します。

フォームの作成

まず、新しいフォームを作成し、少なくとも1つのリッチテキストフォームフィールドを含むフィールドを追加します。

フォームの作成についてサポートが必要な場合は、こちらのドキュメントをご覧ください

フォームを作成し、少なくとも1つのリッチテキストフィールドを含むフィールドを追加することから始めます

スニペットの追加

次に、スニペットをサイトに追加します。スニペットをサイトに追加する方法と場所については、こちらのチュートリアルをご覧ください

/**
* Add Rich Text field validation.
*
* @link https://wpforms.com/developers/how-to-limit-characters-for-the-rich-text-field/
*/
 
function wpf_dev_validate_richtext( $field_id, $field_submit, $form_data ) {
 
    // Optional, you can limit to specific forms. Below, we restrict output to form #3382.
    if ( absint( $form_data[ 'id' ] ) !== 3382 ) {
        return $field_id;
    }

	// Set the maximum character limit here
    $max_characters = 150;

    // Check for character limit
    $char_count = mb_strlen( $field_submit, 'UTF-8' );
    if ( $char_count > $max_characters ) {
        $error_message = sprintf(
            esc_html__( 'Character limit exceeded. The maximum number of characters allowed is %d.', 'wpforms' ),
            $max_characters
        );
        wpforms()->process->errors[ $form_data['id'] ][ $field_id ] = $error_message;
    }
	
	
     
}
add_action( 'wpforms_process_validate_richtext', 'wpf_dev_validate_richtext', 10, 3 );

このスニペットはフォームID3382のみを対象とします。このID番号を自分のフォームIDに合わせて更新する必要があります。フォームID番号の見つけ方がわからない場合は、こちらのチュートリアルを確認してください

スニペットの次の部分は、150文字の制限を持つように設定された$max_characters変数を見ています。スニペットが処理されると、このフィールドの文字数(UTF-8形式)を調べてカウントし、文字数が150の制限を超えた場合、フォーム送信時にエラーが表示されます。

スニペットを使用してリッチテキストの文字数を制限する

これで、リッチテキストフィールドの文字数を制限するために必要なすべてが揃いました。このフィールドにURLを入力することをユーザーにブロックすることもできますか?テキストフィールドからドメインをブロックする方法に関するチュートリアルをご覧ください。

アクションリファレンス: wpforms_process_validate_richtext