ご注意!

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

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

閉じる

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

はじめに

一行テキスト段落テキストなどのフォームフィールド内で、URLをブロックしますか?現在、ほとんどのスパムは、ボットがリンクをフォームに追加しようとすることによって送信されます。小さなPHPスクリプトを使用すると、一行テキストまたは段落テキストフォームフィールドにURLが記載されているフォーム送信を拒否することで、フォームに別の保護レイヤーを追加できます。このチュートリアルでは、これらのフィールドにURLが配置されないようにする方法の各ステップを説明します。

フォームの作成

例として、名前メールアドレスどこで当社のことを知りましたか(一行テキスト)コメント(段落テキスト)フィールド用の簡単な連絡フォームを作成します。

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

フォームを作成し、フィールドを追加することから始めます

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 );

このスニペットはすべてのフォームに自動的に適用され、段落テキストなどの通常のテキストフィールドまたはテキストエリアフィールドでURLの入力を防ぎます。

このPHPスクリプトでフォーム内のURLをブロックする

これで完了です!これらのフィールドでの不適切な言葉遣いをブロックすることもできますか?不適切な言葉遣いを含むフォーム送信をブロックする方法に関する記事をご覧ください。

アクション参照: