フォームフィールド内のURLをブロックする方法

はじめに

一行テキストや 段落テキストなどのフォームフィールドに記載された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を入力できないようにします。

次のPHPスクリプトを使って、フォーム内のURLをブロックします。

以上です!これらのフィールドでも冒涜的な言葉をブロックしたいですか?冒涜的な言葉を含むフォーム送信をブロックする方法についての記事をご覧ください。

行動参照: