【海外アクセス】Contact Form 7が動かないときの対処法【エックスサーバー】
次の条件を満たすとWordPressのContact Form 7が動きません。
- エックスサーバーを使っている
- 海外からアクセスしている
その原因と対処方法を書きました。
なお、基本的には国内ユーザーしか受け付けないサイトでも設定した方がいいかも。なぜなら、海外からのお問い合わせを機会損失することになりますからね。
原因:なぜContact Form 7が動かないのか?
Contact Form 7 がバージョン4.8になってから、REST APIという処理が使われるようになりました。
これがバグの原因でして、エックスサーバーでは、海外からのREST API利用を禁止しています。
なぜかというと、セキュリティレベルを高めるため。一時期はWordPressでREST APIの脆弱性があるサイトが多かったため、ハッキング被害は世界的に増えました。
そういった状況をみて、エックスサーバー側としては、海外からのREST API利用を禁止したようです。
対処方法:エックスサーバーの管理画面からREST API利用制限をOFFにする
管理画面から設定するだけです。
» インフォパネル – ログイン | 【エックスサーバー】
WordPressのセキュリティ設定をクリックします。
REST API アクセス制限を『OFF』にします。これだけでOK。
海外アクセスじゃないのに動かない場合は…?【原因と対処方法】
設定したのに動かないよって場合は別のエラーですが、よくある原因3パターンをあげてみます。
その①:JavaScriptのコンフリクト
Chromeなどでディベロッパーツールを開き、エラーが出ていないか確認しましょう。
その②:WordPressで必須なコードがない
<?php wp_header(); ?>
と<?php wp_footer(); ?>
はありますか?
コンフリクトがないのに動かないって場合は、<?php wp_header(); ?>
と<?php wp_footer(); ?>
が記入漏れかも。<?php wp_header(); ?>
はheader.phpに、<?php wp_footer(); ?>
はfooter.phpに記入しましょう。
その③:プラグインが悪さをしている
プラグインが悪さをしている可能性があります。WP Super CacheかReally Simple CAPTCHAだと不具合が起こる報告があるようです。一旦停止してみて、動作確認しましょう。
以上です。
※P.S:無料メルマガで発信中:過去の僕は「ブログ発信で5億円」を稼ぎました。次は「30億円」を目指します。挑戦しつつ、裏側の思考を「メルマガ」から発信します。不満足なら1秒で解約できます。無料登録は「こちら」です。