はじめに
一行テキストや 段落テキストなどのフォームフィールドに記載されたURLをブロックしたいですか?小さなPHPスクリプトを使うことで、一行テキストや 段落テキストのフォームフィールド内に記載されたURLで送信されようとするフォームを拒否し、フォームを保護することができます。 このチュートリアルでは、これらのフィールドに URL が入力されないようにする方法を説明します。
フォームの作成
この例では、「名前」、「Eメール」、「どのように当サイトをお知りになりましたか(一行テキスト)」、「コメント(段落テキスト)」フィールド用のシンプルなコンタクトフォームを作成します。
フォームの作成にヘルプが必要な場合は、こちらのドキュメントをご覧ください。
URLをブロックするコード・スニペットの追加
次に、フォーム内のURLをブロックするスニペットを追加します。
スニペットをサイトに追加する際にヘルプが必要な場合は、こちらのチュートリアルをご覧ください。
/* * Block URLs from inside form on Single Line Text and Paragraph Text form fields * * @link https://wpforms.com/developers/how-to-block-urls-inside-the-form-fields/ */ function wpf_dev_check_for_urls( $field_id, $field_submit, $form_data ) { if( strpos($field_submit, 'http') !== false || strpos($field_submit, 'www.') !== false ) { wpforms()->process->errors[ $form_data[ 'id' ] ][ $field_id ] = esc_html__( 'No URLs allowed.', 'wpforms' ); return; } } add_action( 'wpforms_process_validate_textarea', 'wpf_dev_check_for_urls', 10, 3 ); add_action( 'wpforms_process_validate_text', 'wpf_dev_check_for_urls', 10, 3 );
このスニペットはすべてのフォームに自動的に適用され、通常のテキスト・フィールドやテキスト・エリア・フィールド(Paragraph Textなど)がフィールド内にURLを入力できないようにします。
以上です!これらのフィールドでも冒涜的な言葉をブロックしたいですか?冒涜的な言葉を含むフォーム送信をブロックする方法についての記事をご覧ください。
関連
行動参照: