ワードプレスのプラグインの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' );

ご参考になりましたら幸いです。

WordPress ワードプレスのカスタマイズのご依頼・ご相談はWPドクターまでお気軽にお送りください