Wordpress運用のアレグレットワークス
現役フロントエンジニアによるWordpressカスタマイズ備忘録

前提・準備

2021/9現在、contactform7のバージョンは5.4.2ですが、5.3.2に下げないとフィルターフックが使用できません。
下記サイトよりバージョンダウンしてください。
https://ja.wordpress.org/plugins/contact-form-7/advanced/

functions.phpに記述

// contactform7 エラー位置調整
function wpcf7_custom_item_error_position( $items, $result ) {
 $class = 'wpcf7-custom-item-error';
 $names = array(
  'birth-year', // 変更したい項目のname属性
  'birth-month',
  'birth-day',
 );
 if ( isset( $items['invalid_fields'] ) ) {
  foreach ( $items['invalid_fields'] as $k => $v ) {
   $orig = $v['into'];
   $name = substr( $orig, strrpos($orig, ".") + 1 );
   if ( in_array( $name, $names ) ) {
    $items['invalid_fields'][$k]['into'] = ".{$class}.{$name}";
   }
  }
 }
 return $items;
}
add_filter( 'wpcf7_ajax_json_echo', 'wpcf7_custom_item_error_position', 10, 2 );

エラーメッセージを新しく表示させたい箇所に記述

下記のようにまとめると、3つの項目のうちどれか一つでも満たしていないと、エラーメッセージを一つだけ表示させることができます。

<div class="wpcf7-custom-item-error birth-day birth-year birth-month"></div>

以上です。

関連記事

Wordpressに関するご相談は、
アレグレットワークスへ

お問合せ・お見積り