はじめに
リッチテキスト・フォーム・フィールドの文字を制限したいですか?単一行テキストおよび段落フォームフィールドには、このフィールドの文字または単語を制限できる機能が組み込まれています。詳しくはこちらのガイドをご覧ください。
しかし、リッチテキスト・フォーム・フィールドの文字数を制限したい場合は、小さなスニペットを使えば簡単にできます。
フォームの作成
新しいフォームを作成し、少なくとも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