メールフォームプラグインとして一定の人気がある MW WP Form のフォーム機能を利用しつつ、ページ高速化のために WP Rocket を利用する場合は注意が必要です。
プラグインを有効化した状態で利用する場合、MW WP Form のフォームを設置しているページにおいてエラーが発生して正しくフォームが動作しません。
※人気メールフォームプラグインの Contact Form 7 ではこの問題は発生しません。
MW WP Form を使いつつ、WP Rocket も利用してエラーを回避する方法をご紹介します。
目次
MW WP Form と WP Rocket を併用して発生するエラーとは
通常、メールフォーム設置はサイト構築の初期の段階で設置することが多く、WP Rocket 等のページ高速化のためのプラグインはサイト構築後か、もしくは公開前の段階になって導入するタイミングが多いかと思います。
WP Rocket を導入後、各ページでの表示で問題なかったとしても、メールフォームまで正しく動作しているかを忘れてしまうケースは少なくありません。
MW WP Form のフォームを設置したページにおいて、WP Rocket が有効化されていると、メールフォームは表示されるものの、確認ボタンや送信ボタンを押しても正しく送信されずにフォーム完了となりません。
この通り、メールアドレスを入力して「確認画面へ」ボタンをおして確認画面へ行こうとすると、確認画面へは行けず画面がリロードされて再度入力画面に戻ってしまいます。送信ボタンでも同様でした。
WP Rocket のキャッシュ除外ルールを設定する
WP Rocket を有効にしていると発生する問題となり、無効化すると発生しません。しかしこの問題のためだけにプラグインを無効化して使わないという判断は得策ではありません。こんな時は特定のページをキャッシュしない用に設定できるよう、キャッシュ除外ルールを WP Rocket から設定します。
設定 → WP Rocket → Advanced Rules 画面にある「Never Cache URL(s)」に MW WP Form を設置している URL を指定します。
今回は MW WP Form を設置している URL は https://development.local/contact/ だったため、ドメイン部分より先の /contact/
を指定します。
さらに、確認画面や完了画面に別 URL を指定することも考え、正規表現の (.*)
を追加しています。
これはたとえば確認画面に /contact/confirm/
、完了画面に /contact/thanks/
のような URL を設定したとしても、contact
ディレクトリ配下はすべてキャッシュが無効となるようにという正規表現です。さらに配下のディレクトリがなかった場合でも条件とするため、仮に確認画面や完了画面が同一 URL だったとしても問題無いというとても便利な正規表現なのです。
正規表現は覚えておくと色々と役立つ場面が多いため、業務上必要なところからで構わないので学ぶことをおすすめします。
少し話が逸れましたが、もしフォームが複数設置されているようなケースにおいては、同様に除外ルールに追加します。複数ルールを追加する場合は改行して1行につき1ルール、のような形で追加します。
正しく動作していることを確認する
WP Rocket のキャッシュをクリアし、ブラウザのシークレットモードでフォームが正しく動作するか確認します。メールアドレスを入力し、確認画面、送信完了画面に切り替わったことが確認できました。
正しくメールフォームが送信されているか、MW WP Form のデータベースに保存する機能を使ってみてみます。MW WP Form → 問い合わせデータ → 該当するフォーム と進み、正しくメールフォームが保存されていることを確認しました。
エラーが発生する箇所は対応しWP Rocket を使うという選択肢を
以上、MW WP Form を使いながら WP Rocket を使うためのエラー回避方法でした。ブラウザのコンソールを表示させながらこのエラーを再現しても JavaScript のエラーは出ないことから、おそらく PHP 側のエラーの可能性があります。
WP Rocket のキャッシュ除外ルールに追加することで特定のページではキャッシュしないことができるため、これにより MW WP Form を利用したまま WP Rocket による強力なパフォーマンス向上が実現できます。
WP Rocket は今回のページキャッシュ除外機能の他にも、特定のクッキーや特定のユーザーエージェントをキャッシュしないような柔軟なルールづくりが可能です。WordPress のパフォーマンス向上・ページ高速化プラグインとして検討の際はお勧めします。
コメントを残す