WordPressを使ったWebサイトで送信フォームを作成することになりました。
WordPressの送信フォームのプラグインではContactForm7と言うのも有名らしいですが、
こちらは外国の方が作ったプラグインで確認画面がないということでMW-WP-Formを選びました。
WordPressの管理画面で必要項目を入力後に、作成したフォームがうまく動作するかを確認します。
フォームの入力画面で必要項目を入力後に確認ボタンをクリックするとうまく確認画面に遷移しました。
ためしに戻ってみると入力ページに遷移します。
うまくいってそうなので送信確認をしようと再び確認画面へ遷移しようとしたら入力内容がリセットされてしまいました。
どうやら確認画面へ遷移されていないようです。
もう一度入力して確認ボタンを押しても同じでした。
ブラウザの キャッシュが原因かと思って削除してみると入力後に確認ボタンをクリックすると確認画面へ遷移しました。
もう一度戻って入力確認するとやっぱり確認画面へ遷移しません。
キャッシュを消せばうまくいくみたいですが、普通の使い方で入力確認画面から戻る時に
いちいちキャッシュを消す作業をするとかはあり得ないので、修正の必要がありそうです。
調べてみるとMW-WP-Formを正常に動かすためにはwp_head();とwp_footer();とget_header();が必要みたいです。
使っていたWordPressのテンプレートはオリジナルのためこの3つは記載されていませんでした。
テンプレートのファイルにこの3つを記載します。
<?php wp_head(); ?>を</head>の直前に
<?php wp_footer(); ?>を</body>の直前に
<?php get_header(); ?>を<body>の直後に
それぞれ記載しました。
wp_head();はwp_header();と書いているサイトがありますがテンプレートファイルにwp_header();と書いてしまうと
サイトが真っ白になってちょっと焦るので注意です。
wp_header();は間違いです。
ちなみに今回使用したオリジナルテンプレートはテーマファイルがあまり細かく分割されていなかったので
すべてindex.phpに記載しましたが、テーマファールが分割されている場合はheader.phpやfooter.phpに記載する場合もあると思います。
すべてを記載終了したので動作確認です。
入力画面で確認ボタンを押すと確認画面へ無事遷移します。
確認画面で戻るボタンを押すと内容がリセットされずに入力画面に遷移。
再び確認ボタンを押すとちゃんと確認画面に推移します。
確認画面で送信ボタンを押すと送信完了画面へ推移します。
これで問題なく送信フォーム作成完了と思ったらサイトのヘッダ部分が崩れてしまっています。
今までなかったwp_head();とget_header();を記述した影響が出ているようです。
この二つは必要だと書いてありましたが、実はwp_footer();が一番影響があって
wp_head();とget_header();は無くてもいいんじゃないかと淡い期待を抱いて消してみました。
※本当はwp_head();とget_header();も含めて形の崩れないテンプレートが望ましいと思います。
動作確認すると・・・
問題なさそうです。
どうやらwp_footer();があればプラグインとして成立してそうな感じです。
と言うことでテンプレートをいじるのはひとまず置いといてこのまま行こうと思います。
まとめ
プラグインの動作にはwp_head();とwp_footer();とget_header();が必要なものがある
オリジナルテンプレートを使うとwp_head();とwp_footer();とget_header();など必要なものが抜けている場合がある
MW-WP-Formを使う際は少なくともwp_footer();は必要。