WordPress コンタクトフォーム7のデフォルトフォームを作る


複数のサイトを作成するときに、いちいちコンタクトフォームを入力したくないので、フィルターフック探したらあった。

 

 

 

public static function get_default( $prop = 'form' ) {
	if ( 'form' == $prop ) {
		$template = self::form();
	} elseif ( 'mail' == $prop ) {
		$template = self::mail();
	} elseif ( 'mail_2' == $prop ) {
		$template = self::mail_2();
	} elseif ( 'messages' == $prop ) {
		$template = self::messages();
	} else {
		$template = null;
	}

	return apply_filters( 'wpcf7_default_template', $template, $prop );
}

 

 

wpcf7_default_templateにフックすればいいっぽい。返信メールとかも変更したい場合はelse ifで分岐すればOKでしょう。

 

 

add_filter( 'wpcf7_default_template', 'custom_wpcf7_get_default_template', 10, 2 );

function custom_wpcf7_get_default_template( $template, $prop = 'form' ) {
 if ( 'form' == $prop )
 $template = custom_wpcf7_default_form_template();

 return $template;
}

function custom_wpcf7_default_form_template() {
 $template =
 '<p>' . __( 'Your Name', 'contact-form-7' )
 . ' ' . __( '(required)', 'contact-form-7' ) . '<br />' . "\n"
 . '  </p>' . "\n\n"
 . '<p>' . __( 'Your Email', 'contact-form-7' )
 . ' ' . __( '(required)', 'contact-form-7' ) . '<br />' . "\n"
 . ' [email* your-email] </p>' . "\n\n"
 . '<p>' . __( 'Subject', 'contact-form-7' ) . '<br />' . "\n"
 . '  </p>' . "\n\n"
 . '<p>' . __( 'Your Message', 'contact-form-7' ) . '<br />' . "\n"
 . ' [textarea your-message] </p>' . "\n\n"
 . '<p>[submit "' . __( 'Send', 'contact-form-7' ) . '"]</p>';
 return $template;
}

bootstrap使ってるとform-group使いたくなるんだけど、コンタクトフォーム7のフォームのコピペは辛いので、こんな形でデフォルト作っとけばあとあと楽かなぁ・・・


投稿日: 2016年5月28日
カテゴリー: php|WordPress | 投稿者: