ワードプレスのプラグインのContact Form 7 のフォームのコードにHTMLを追加したり置換したりできるフィルタwpcf7_form_elements についてご紹介します。
ContactForm 7の問い合わせフォームすべての前後にテキストを追加
このコードはすべてのお問い合わせフォームの前後に説明文を追記するPHPプログラムになります。テーマのFunctions.phpに追加すると動作します。
add_filter( 'wpcf7_form_elements', 'add_my_description' ); function add_my_description( $form ) { $description_f = '<p>このテキストはすべてのフォームの前に表示されます</p>'; $description_e = '<p>このテキストはすべてのフォームの後に表示されます</p>'; return $description . $form . $description_e; }
wpcf7_form_elementsフィルタの送ってくる変数$formには、ワードプレスの管理画面で作成されたフォームをHTML化したものが入っています。
この$formの内容の前後に任意のテキストを追加してreturnすれば、お問い合わせフォーム全てに一括で任意の文言を追加することができます
Contact Form 7の問い合わせフォームすべての任意のテキストを置換する
add_filter( 'wpcf7_form_elements', 'replace_my_form' ); function replace_my_form( $form ) { $form = str_replace('置換前の文字列','置換後の文字列',$form); return $form; }
wpcf7_form_elementsで現在のページのIDを取得するには?
以下のようにページIDを取得して場合分けをすることも可能です。
add_filter( 'wpcf7_form_elements', 'replace_my_form' ); function replace_my_form( $form ) { if(get_the_id()!=5){ //ページIDが5以外の場合のみ置換する $form = str_replace('置換前の文字列','置換後の文字列',$form); } return $form; }
おまけ・wpcf7_form_elementsでフォーム内に記載されたショートコードを展開することもできます
function do_shortcodes_in_cf7( $form ) { $form = do_shortcode( $form ); return $form; } add_filter( 'wpcf7_form_elements', 'do_shortcodes_in_cf7' );
ご参考になりましたら幸いです。