【WordPress】Contact Form 7をテンプレート内で表示する

More than 1 year has passed since last update.

Contact Form 7のショートコードをテンプレートで使用したい場合は以下のように do_shortcode() を使用し、その中にショートコードを記述する。


hoge.php

<div class="entry-content">

<?php echo do_shortcode( '[contact-form-7 id="1" title="example form"]' ); ?>
</div>

idとtitleは移行の際など変わってしまう恐れがあるた、自動で取得したい。

そういった場合は以下の方法で取得できる。


hoge.php

<?php

$get_form = get_posts(array('post_type' => 'wpcf7_contact_form', 'posts_per_page' => -1, 'name' => 'form'))[0];
?>

<div class="entry-content">
<?php echo do_shortcode( '[contact-form-7 id="'.$get_form->ID.'" title="'.$get_form->post_title.'"]' ); ?>
</div>


注意点としては、'name'で指定する値は 最初に登録した投稿タイトル ということ。

最初に "お問い合わせフォーム" とした場合は、いくら投稿タイトルを編集しても "お問い合わせフォーム" のまま変わらない。

変更されても問題ないので逆にありがたいかもしれない。

ちなみにデフォルトで入っているテスト投稿は "contact_form_01" となっている。(うろ覚えなので間違ってるかも)