以前より、WordPressのメールフォームプラグイン「MW WP Form」を使わせていただいています。
これまで特に問題なかったのですが、あるプロジェクトで使おうとしたところ、何度やっても、確認画面などへのページ遷移(リダイレクト)がうまくいかない。しかし、なんとか解決しましたので、事例のひとつとして残しておきます。
症状
必要な固定ページを作成し、以下のようにページリダイレクトの設定をしました。
- 入力画面URL: /contact/
- 確認画面URL: /contact/confirm/
- 完了画面URL: /contact/finish/
- エラー画面URL: /contact/error/
しかし、送信テストを試みるも、リダイレクトがうまくいきません。/contact/のままだったり、一瞬/contact/error/に行くも再び/contact/にリダイレクトされたり。そんな症状です。
やってみたこと
まずは、公式サイトのFAQにて確認。
画面遷移の不具合に関してこうありました。
テーマをデフォルトに戻し、他のプラグインを停止させてみてください。テーマが不完全で WordPress に必須のテンプレートタグが不足していたり、他のプラグインと干渉していないか確認してください。
※テーマには wp_head()、wp_footer()、get_header() が必須です。
FAQ | MW WP Form
まずは分かりやすいテーマの確認。上記3つのテンプレートタグは正しく設置されていました。
というわけで、他のプラグインが干渉している可能性を疑う。まずはページキャッシュ系のプラグイン。「WP Fastest Cache」を使っていたので、ひとまずこれを停止。
しかし、症状は変わらず。もともとこのプラグインの設定で固定ページはキャッシュされないようにしていたので、やはり無関係でした。
お次。「Broken Link Checker」。何かしらリダイレクトに影響してるかもしれない、と思ったけど、こちらも無関係。
その他、ちょっとでも関係ありそうなものをチクチク無効に。
「001 Prime Strategy Translate Accelerator」「Akismet」「DB Cache Reloaded Fix」。
…結果。
DB Cache Reloaded Fixが干渉してた
「DB Cache Reloaded Fix」というプラグインを停止した時に、MW WP Formのリダイレクトが正常に動作することがわかりました。
このプラグインは、データベースクエリをキャッシュすることで表示を高速化してくれる人で、該当プロジェクトでは、ずっと前にインストールしたまま有効にってました。しかし、MW WP Formに干渉するとなると外さざるを得ないな、と。思いながら、よく見ると、更新が5年前(2012年)で止まってました。
というわけで、これは削除やむなし!ということで、アンインストールし、本件は解決。
終わりに
「MW WP Form」のリダイレクトがうまくいかず、かつ「DB Cache Reloaded Fix」がインストールされている場合はまず真っ先にこれを停止してみてください。
それでなくても、5年前から更新が止まっているプラグインは、やはり使用を避けるべきです。僕も惰性で使っていて気づきませんでしたので、今回ひとつ勉強になりました。それでは。