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

はじめに

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

しかし、リッチテキスト・フォーム・フィールドの文字数を制限したい場合は、小さなスニペットを使えば簡単にできます。

フォームの作成

新しいフォームを作成し、少なくとも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番号がどこにあるかわからない場合は、こちらのチュートリアルをご覧ください

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

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

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

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