在做wordpress的问和功能时,通常用到contact-form-7这个插件,在这个插件中并没有邮箱的确认功能,以下是对问和确认功能的补充:
如下图所示的问和确认中

在用来确认邮箱的短代码中,在原来邮箱这里的name后加上 _confirm作为确认邮箱的name名,代码如下:

    <dl>
        <dt><span class="must">必須</span>メールアドレス</dt>
        <dd class="email">
            [email* email-547]
        </dd>
    </dl>
    <dl>
        <dt><span class="must">必須</span>メールアドレス確認用</dt>
        <dd class="email">
            [email* email-547_confirm]
        </dd>
    </dl>

然后在function.php中加入以下代码:

function wpcf7_main_validation_filter( $result, $tag ) {
  $type = $tag['type'];
  $name = $tag['name'];
  $_POST[$name] = trim( strtr( (string) $_POST[$name], "\n", " " ) );
  if ( 'email' == $type || 'email*' == $type ) {
    if (preg_match('/(.*)_confirm$/', $name, $matches)){
      $target_name = $matches[1];
      if ($_POST[$name] != $_POST[$target_name]) {
        if (method_exists($result, 'invalidate')) {
          $result->invalidate( $tag,"確認用のメールアドレスが一致していません");
      } else {
          $result['valid'] = false;
          $result['reason'][$name] = '確認用のメールアドレスが一致していません';
        }
      }
    }
  }
  return $result;
}

add_filter( 'wpcf7_validate_email', 'wpcf7_main_validation_filter', 11, 2 );
add_filter( 'wpcf7_validate_email*', 'wpcf7_main_validation_filter', 11, 2 );