THE THOR の問い合わせフォームを、標準機能のものから Contact Form 7 に変更したときに、フォームが二重に表示されてしまうという不具合が発生しました。
同じ現象に困っている方のために解決方法をまとめてみました。
お役に立ちますように。
<やりたいこと>
問い合わせフォームからのスパムを防ぐためにGoogle reCAPTCHAを設置したい。
そのために THE THOR 標準の問い合わせフォームから、Contact Form 7の問い合わせフォームに変更をしたい。
<起きている現象>
Contact Form 7の問い合わせフォームを設置したら、その下に THE THOR 標準の問い合わせフォームも表示されてしまう。
<原因>
問い合わせフォームの固定ページのスラッグが「contact」になっている。
<解決策>
固定ページのスラッグを「contact」から別のものに変更する。
ことの経緯と起きている不具合
いままでこのサイトの問い合わせフォームには、THE THOR 標準の問い合わせフォームを使っていました。
問い合わせフォームの定番プラグイン「Contact Form 7」を使ってもよかったんですが、標準機能で設置も楽だったので THE THOR のものを使うことにしました。
しかし、あるときから海外からのスパムメールが大量に届くようになってしまいました。
なので、GoogleのreCAPTCHAを導入したのですが・・・これがまったく効果なし・・・(汗)
いや、正確には多少効果はあったのかもしれないのですが、あいかわらずスパムメールは届き続けています。
少し調べてみると、「THE THOR の問い合わせフォームには Google reCAPTCHA はあんまり効果がない」というような情報もチラホラ・・・
ということで、Contact Form 7 を導入し、フォームを入れ替えることにしました。

で、導入完了後にお問い合わせのページを確認してみると・・・

あれ???
同じページ内にフォームが2つ表示されてる???
固定ページのテンプレートを「お問い合わせTPL」にしたままかと思ったんですが、確認してみると「デフォルトテンプレート」に変更済みです。
それでもフォームが2つ表示されてしまう・・・。
はて、なんでだろう???
解決方法
結論からいうと、問い合わせページのスラッグ(パーマリンクのURL)が「contact」になっていることが原因のようです。
本来であれば、スラッグは関係なく固定ページのテンプレートのみで切り替えができるのが自然な仕様だと思うのですが、なんらかの不具合でスラッグの影響も受けてしまっているようです。
なので対策としては、スラッグを「contact」以外に変更することで解決します。
スラッグを「contact-7」に変えてみました。
(別になんでもOKです)
そしたら無事 Contact Form 7 のフォームのみに。
よかったよかった。
まぁ、問い合わせページのスラッグを「contact」にしておくと、海外のスパムプログラムにも捕捉されやすいでしょうから、そういう意味でもスラッグ変更しておいたほうがよいかもですね。
「otoiawase(おといあわせ)」とか日本語のスラッグでもいいかもです。
あ、スラッグが変わったので、問い合わせページへの内部リンクの見直しも忘れないようにご注意くださいね。
まとめ
THE THOR で Contact Form 7 の問い合わせフォームを使う場合、固定ページのスラッグが「contact」になっていると、フォームが二重に表示されてしまうようです。
スラッグを「contact」以外のものに変更することで簡単に解決できるので、フォームが2つ表示されて困っている方が試してみてください。
お役に立つ情報であったなら幸いですm(_ _)m