目次
MW WP FORMの送信遅延問題を解決!原因と対策を徹底解説
WordPressのフォームプラグイン「MW WP FORM」は、多くのサイトで導入されている人気プラグインですが、大量の問い合わせデータが蓄積されると送信が遅くなる問題が発生することがあります。
送信完了までに数十秒から数分かかることもあり、ユーザーエクスペリエンスの低下やフォーム離脱の原因となるため、非常に緊急性の高い事案です。
ちなみに、最初は別のお問い合わせフォームを作って動作させていました。
MW WP FORMの送信遅延の原因
MW WP FORMの送信遅延が発生する主な原因は、フォーム送信時にデータを保存する際の スラッグ(投稿名)生成処理の負荷 にあります。
具体的には、WordPressの wp_insert_post 関数内で、スラッグがユニークかどうかを確認するために 全問い合わせデータを検索し、重複を避ける処理 が実行されます。
しかし、問い合わせデータが数千件以上に達すると、この処理に時間がかかり、送信遅延の原因となります。
この問題は、問い合わせデータが増えれば増えるほど深刻化し、最終的には 送信が完了するまで数分かかる ようになることもあります。
MW WP FORMのデータはカスタム投稿タイプ mwf_xxx(xxxはフォームID)として保存されるため、このスラッグ生成プロセスの影響を大きく受けてしまうのです。
MW WP FORMの送信遅延を解消する方法
送信遅延の根本的な原因が スラッグ生成の処理負荷 にあるため、解決策として スラッグの生成方法を変更する のが最も効果的です。
スラッグの生成処理を ランダムな一意の値に変更することで、遅延を劇的に改善 できます。
手順1:functions.php にコードを追加する
function custom_mw_wp_form_slug( $override_slug, $slug, $post_ID, $post_status, $post_type ){
if ($post_type == "mwf_xxx") { // xxx を対象のフォームIDに変更
$override_slug = uniqid("mw_wp_form_"); // 送信遅延防止のため、一意のスラッグを作成
}
return $override_slug;
}
add_filter( 'pre_wp_unique_post_slug', 'custom_mw_wp_form_slug', 10, 5 );
コードのポイント
• $post_type == “mwf_xxx” の xxx 部分を 対象のフォームID に置き換えてください。
• uniqid(“mw_wp_form_”) を使用して、ランダムなスラッグを自動生成します。
• これにより、WordPressが問い合わせデータ全件を検索しなくても、一意なスラッグが割り当てられるため、処理速度が向上します。
手順2:複数のフォームに対応させる
1つのフォームだけでなく、 サイト内のすべてのMW WP FORMの送信遅延を解決したい場合 は、以下のコードを使用します。
function custom_mw_wp_form_slug_all( $override_slug, $slug, $post_ID, $post_status, $post_type ){
if (strpos($post_type, "mwf_") === 0) { // mwf_で始まるカスタム投稿タイプを対象にする
$override_slug = uniqid("mw_wp_form_"); // ランダムなスラッグを設定
}
return $override_slug;
}
add_filter( 'pre_wp_unique_post_slug', 'custom_mw_wp_form_slug_all', 10, 5 );
このコードの特徴
• strpos($post_type, “mwf_”) === 0 を使用することで、 すべてのMW WP FORMの問い合わせデータ に適用されます。
• フォームごとに個別対応する必要がないため、管理が容易になります。
• 大規模なサイトや複数の問い合わせフォームを運用しているサイトで特に有効です。
MW WP FORMのパフォーマンスを向上させる追加対策
スラッグ生成の最適化以外にも、MW WP FORMの動作を軽快にするための対策があります。
不要な問い合わせデータを定期的に削除
古い問い合わせデータが大量に蓄積されると、データベースの負荷が増加し、サイト全体の動作が遅くなる可能性があります。
定期的に不要な問い合わせデータを削除することで、データベースの最適化が可能です。
対策方法
• WordPressの管理画面から不要な問い合わせデータを手動削除
• WP-Optimize などのデータベース最適化プラグインを活用
まとめ
MW WP FORMの送信遅延問題は、 スラッグ生成時の処理負荷が原因 となっているため、スラッグをランダムに生成するコードを追加することで 劇的に改善 できます。
また、フォームのパフォーマンスを向上させるために、以下の対策も併用するとさらに効果的です。
✅ スラッグ生成を最適化する(カスタムコード適用)
✅ 古い問い合わせデータを定期的に削除
✅ キャッシュプラグインを適切に設定する
✅ PHPのバージョンを最新にアップデート
この対策を導入すれば、MW WP FORMの送信速度が向上し、スムーズなフォーム送信を実現できます!
問い合わせフォームのレスポンスが改善され、ユーザーエクスペリエンスの向上にもつながるため、ぜひお試しください。
自分の備忘録も兼ねてブログにしておきます。