「Contact Form 7」を使ってお問い合わせフォームを作っているとき、フォームのインプットやテキストエリアが、親要素をはみ出して表示されてしまうことがあります。
これ、CSSでwidth:100%;
を指定しても効かないんですよね。
問題の原因は自動で出力されている[size属性]です。
今日は、この『Contact Form 7 で出力されるsize属性』を出力しない方法を紹介します。
functions.php を使って制御
フォーム出力時に自動的に生成されるsize属性を削除したい場合、フィルターフックを使って制御可能です。
具体的なコードは以下。
add_filter('wpcf7_form_elements', function($content) { $content = preg_replace('/\s*size="\d+"/i', '', $content); return $content; });
説明:
- 「wpcf7_form_elements」フィルターフックを利用して、生成されるHTMLからsize属性を取り除きます。
- 正規表現で『size="数字"』を検出し、削除します。
このコードを functions.php の適当な場所に記述すると「size属性の削除」が自動的に適用されます。
導入後はフォームの見た目をさらに柔軟にカスタマイズできます。
ぜひお試しください。