MW WP Formのリダイレクトがうまくいかない時にやってみること

以前より、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年前から更新が止まっているプラグインは、やはり使用を避けるべきです。僕も惰性で使っていて気づきませんでしたので、今回ひとつ勉強になりました。それでは。