• WordPress2.9.1にContactForm7の最新版を使用しており、ページ内に[contact-form 1 "コンタクトフォーム 1"]と書いています。

    • テーマをWordPress Default 1.6、WordPress Classic 1.5に変更するとフォームが表示されました。
    • 使用しているテーマ(自作)に変更するとフォームが表示されず[contact-form 1 "コンタクトフォーム 1"]がそのまま表示されました。
    • 使用しているテーマ(自作)にしたまま、ContactForm7以外のプラグインを停止しましたが[contact-form 1 "コンタクトフォーム 1"]がそのまま表示されました。
    • WordPress Default 1.6のpage.phpのコードを今使用しているテーマ(自作)に上書きしてみましたが[contact-form 1 "コンタクトフォーム 1"]がそのまま表示されました。
    • 加えてfunctions.phpの中身を空にしてみましたが[contact-form 1 "コンタクトフォーム 1"]がそのまま表示されました。

    以上のような状況なのですが、[contact-form 1 "コンタクトフォーム 1"]がそのまま表示されてしまうのは、テーマ内のどの部分が影響していると思われますか?

    よろしくお願いします。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • wp_head();が自作テーマのheaderに記述されていますか?
    参考

    トピック投稿者 reconte_tout

    (@reconte_tout)

    申し訳ありません、原因が分かりました。

    page.phpとは別に、使っているテーマにはpage-contact.phpを用意しており(内容はpage.phpと同じ)、デフォルトテーマのpage.phpを使っているテーマのpage.phpに上書きしても、フォームのページを出力しているPHPは変わっていなかったようです。

    the_content()で出力される不要なタグをなくすために、the_content()の代わりに次のようなコードを書いていたのが原因のようです。

    <?php $contents=get_extended($post->post_content);print($contents[main]);if(!empty($contents[extended])){print($contents[extended]);} ?>

    上記のコードは<del>どこかのサイト</del><ins>WebTechNote</ins>さんで解説されていたのを真似したもので、おそらく使っている人も少なくないのではないかと思います。もしContact Form 7の作者さんが見ていらっしゃいましたら、上記のようにして投稿本文を出力している場合もフォームが表示されるようにしていただければ嬉しいです。

    以上、お騒がせしました。

    ※補足
    shokun0803さん、ご回答ありがとうございました。デフォルトテーマをいじることからはじめたので、デフォルトテーマに記述されているwp_head();やwp_foot;は記述してありました。

    ※補足2
    不要なタグというのは、<!--more-->をつかった際に出力される<p><span id="more-325"></span></p>などのことです。

    モデレーター Takayuki Miyoshi

    (@takayukister)

    解決されたようですが一応、補足しておくと、

    <?php $contents=get_extended($post->post_content);print($contents[main]);if(!empty($contents[extended])){print($contents[extended]);} ?>

    こういった方法ではショートコードのフィルタが適用されませんので、Contact Form 7 のショートコードが置換されないのはそのためです。もちろん Contact Form 7 に限らずショートコードを使用するプラグインはすべて機能しなくなります。

    デフォルトテーマを参考に the_content() を正しく使用してください。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「Contact Form 7 が使用しているテンプレートだと表示されない」には新たに返信することはできません。