Written by Manabu Bannai

【海外アクセス】Contact Form 7が動かないときの対処法【エックスサーバー】

PROGRAMMING WordPress

次の条件を満たすと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だと不具合が起こる報告があるようです。一旦停止してみて、動作確認しましょう。

以上です。