ウェブサイトを運営している場合、エラーが発生することは避けられません。 一般的な WordPress エラー、そのような問題の 1 つが CORS エラーです。
このエラーは、WordPress サイトが別のオリジン (ドメイン、プロトコル、またはポート) のリソースにアクセスしようとしたが、それらのリソースをホストしているサーバーがそれを許可しない場合に発生します。
CORS エラーは API 呼び出し、フォントの読み込み、AJAX リクエストなどの重要な機能を中断させ、サイトのパフォーマンスとユーザー エクスペリエンスに悪影響を及ぼす可能性があるため、解決は非常に重要です。.
このガイドでは、WordPress で CORS エラーを識別して修正し、Web サイトが機能的かつユーザーフレンドリーな状態を維持できるようにするための手順の概要を示します。.
要約:クロスオリジンリソース共有(CORS)問題の解決
- このエラーは、サイトが適切な権限ヘッダーを持たずに別のドメインのリソースをリクエストした場合に表示されます。ブラウザはユーザーのセキュリティを保護するため、このリクエストをブロックします。.
- API 呼び出し、フォント、CDN アセット、AJAX リクエスト、埋め込みウィジェットが壊れ、パフォーマンスとユーザー エクスペリエンスに影響する可能性があります。.
- ブラウザコンソールとネットワークタブを使用して問題を特定します。ブロックされたリクエストと、Access-Control-Allow-Originヘッダーの欠落を探します。.
- サーバー設定、htaccess、テーマ機能、CDN ルールを更新するか、リソース プロバイダーに連絡して適切な構成を取得して修正してください。.
CORSエラーとは何ですか?
クロスオリジン リソース共有 (CORS) は、悪意のある Web サイトが許可なく他のサイトの機密情報にアクセスするのを防ぐために Web ブラウザーによって実装されるセキュリティ機能です。
これは、 をホストしている 、クロスオリジン リクエストの許可を与える特定のヘッダーが含まれているかどうかを確認することで機能します。

CORS エラーは、Web ページが別のドメイン、プロトコル、またはポートからリソースにアクセスしようとしたが、サーバーがそれを許可しない場合に発生します。.
WordPress で CORS エラーが発生する一般的なシナリオは次のとおりです。
- 外部 API データの取得: WordPress サイトが外部 API からデータを取得しようとすると、API サーバーがサイトのリソースへのアクセスを許可していない場合は CORS エラーが発生する可能性があります。
- 別のドメインからフォントを読み込む場合: 別のドメインでホストされているカスタムフォントを使用する場合、フォントサーバーがサイトによるフォントの読み込みを許可していないと、CORSエラーが発生する可能性があります。
- 静的アセットにCDNを使用する場合: 画像、CSS、またはJavaScriptファイルがCDNから配信される場合、 CDN サーバーがサイトがこれらのファイルにアクセスできるようにするための正しいヘッダーを持っていなければ、CORSエラーが発生する可能性があります。
- AJAX リクエストの実行: WordPress サイトが AJAX リクエストを実行する場合、API サーバーがこれらのリクエストを明示的に許可していないと CORS エラーが発生する可能性があります。
- サードパーティ製ウィジェットの埋め込み: 最後に、iframe を使用して他のドメインのウィジェットを埋め込むと、ウィジェット サーバーがクロス オリジン アクセスを許可していない場合、CORS エラーが発生する可能性があります。
24時間365日対応のWordPressサポートプランでエラーにさよなら
CORS エラーであろうと、その他の WordPress の問題であろうと、当社の専任サポート チームが 24 時間体制でサポートいたします。.
CORS エラーは Web サイトの機能とユーザー エクスペリエンスにどのように影響しますか?
CORSエラーは、外部データ、カスタムフォント、スクリプトの読み込みなど、サイトの重要な機能をブロックする可能性があります。その結果、サイトが正しく表示されない、または完全に機能しなくなる可能性があり、ユーザーエクスペリエンスの低下につながります。.
たとえば、外部 API に依存する機能が失敗したり、カスタム フォントが読み込まれなかったり、AJAX を使用するインタラクティブな要素が壊れたりする可能性があります。
したがって、Web サイトがスムーズに実行され、シームレスなユーザー エクスペリエンスが提供されるようにするには、CORS エラーを解決することが不可欠です。.
WordPressのCORSエラーの特定
これらの手順に従うことで、WordPress サイトの CORS エラーを簡単に特定できます。.
ブラウザのコンソールを確認してください。 ブラウザの 開発者ツール (F12キーを押すか、ページを右クリックして「検証」を選択します)。「コンソール」タブに移動して、エラーメッセージを確認してください。

コンソールで、「CORS ポリシー」または「クロスオリジン リソース共有」に関するメッセージを探します。これらのメッセージは通常、CORS によってリソースがブロックされたことを示します。.
開発者ツールで、「ネットワーク」タブに切り替えてページを再読み込みします。.
- 失敗したことを示す赤でマークされたリクエストを探します。.
- これらのリクエストをクリックすると、CORS 関連の問題など、エラーの詳細が表示されます。.
APIレスポンスヘッダーの確認: APIを操作する際は、「ネットワーク」タブでレスポンスヘッダーを確認してください。「Access-Control-Allow-Origin」ヘッダーが存在し、正しく設定されているかを確認します。
プラグインの設定を確認する: 外部リソースとやり取りするプラグインを使用している場合は、その設定とドキュメントを確認して、CORS が正しく処理されていることを確認します。
オンラインツールを使用する: などのツールを使用して CORS Checker かどうかをテストします アクセスしようとしている外部リソースがクロスオリジンリクエストを許可するように適切に設定されている
詳しくはこちら: WordPressの更新と公開の失敗エラーを修正するヒント
WordPressのCORSエラーの例と修正手順
ここでは、WordPress で CORS エラーが発生する一般的なシナリオと、それを修正するための簡単な手順を示します。.
例1: 外部APIデータの取得
WordPress サイトが外部 API からデータを取得しようとしましたが、失敗しました。.
エラーメッセージ:
へのアクセスがhttps://api.example.com/dataオリジン「https://yourwordpresssite.comブロックされました。要求されたリソースに「Access-Control-Allow-Origin」ヘッダーが存在しません。
修正方法: WordPress ルート ディレクトリの .htaccess ファイルを変更します。
<IfModule mod_headers.c>ヘッダーにAccess-Control-Allow-Origin "*"を設定</IfModule>
これにより、サーバーは任意のサイトがリソースにアクセスできるようにします。.
こちらもご覧ください: WordPressで301エラーを修正する方法
例2: 別のドメインからフォントを読み込む
WordPress サイトでは、別のドメインでホストされているカスタム フォントを使用していますが、読み込まれません。.
エラーメッセージ:
オリジン 'https://yourwordpresssite.com' からの 'https://fonts.example.com/font.woff2' のフォントへのアクセスは CORS ポリシーによってブロックされました: 要求されたリソースに 'Access-Control-Allow-Origin' ヘッダーが存在しません。.
解決方法: テーマの functions.php ファイルに以下のコードを追加してください。
関数 add_cors_headers() { ヘッダー("Access-Control-Allow-Origin: *"); } add_action('init', 'add_cors_headers');
これにより、すべての応答に必要な CORS ヘッダーを追加できるようになります。.
例3: 静的アセットにCDNを使用する
WordPress サイトは CDN から画像、CSS、または JavaScript ファイルを提供していますが、それらはブロックされています。.
エラーメッセージ:
オリジン 'https://yourwordpresssite.com' からの 'https://cdn.example.com/script.js' のスクリプトへのアクセスは CORS ポリシーによってブロックされました: 'Access-Control-Allow-Origin' ヘッダーには複数の値 '*, *' が含まれていますが、許可されるのは 1 つだけです。.
解決方法: を使用している場合は Apache、設定ファイルに以下を追加してください。
<IfModule mod_headers.c>ヘッダーにAccess-Control-Allow-Origin "*"を設定</IfModule>
を使用している場合は Nginx、設定ファイルに以下を追加してください。
場所 / { add_header 'Access-Control-Allow-Origin' '*'; }
例4: AJAXリクエストの作成
WordPress サイトは別のサブドメインのカスタム REST API エンドポイントに AJAX リクエストを送信しますが、ブロックされます。.
エラーメッセージ:
オリジン 'https://yourwordpresssite.com' からの 'https://api.yourwordpresssite.com/endpoint' の XMLHttpRequest へのアクセスは CORS ポリシーによってブロックされました: プリフライト要求への応答がアクセス制御チェックに合格しません: 要求されたリソースに 'Access-Control-Allow-Origin' ヘッダーが存在しません。.
解決方法: をインストールして有効化し Enable CORSプラグイン、サブドメインを許可するように設定を構成します。
例5: サードパーティ製ウィジェットの埋め込み
WordPress サイトは iframe を使用して他のドメインのウィジェットを埋め込んでいますが、読み込まれません。.
エラーメッセージ:
オリジン 'https://yourwordpresssite.com' からの 'https://widget.example.com/' のリソースへのアクセスは CORS ポリシーによってブロックされました: 要求されたリソースに 'Access-Control-Allow-Origin' ヘッダーが存在しません。.
修正方法: サードパーティプロバイダーに、 Access-Control-Allow-Origin に以下のコードを追加してみてください .htaccessファイル。
<IfModule mod_headers.c>ヘッダーにAccess-Control-Allow-Origin "*"を設定</IfModule>
知っておきたいこと: 404エラーとは何か?どうすれば解決できるのか?
WordPressでCORSエラーを解決するその他の方法
CORS エラーを解決し、WordPress サイトのシームレスな機能を確保するための追加の方法をいくつか紹介します。.
- Cloudflare をご利用の場合: Cloudflare をご利用の場合は、Cloudflare ダッシュボードから CORS ヘッダーを管理するためのカスタムルールを設定できます。また、Cloudflare Workers を使用して、リクエストがネットワークを通過する際にヘッダーを追加または変更することもできます。
- テーマの functions.php ファイルを変更する: 別の方法として、テーマの functions.php ファイルにコードを追加する方法があります。CORS を有効にするには、次のコードを挿入してください。
function add_cors_headers() { header("Access-Control-Allow-Origin: *"); header("Access-Control-Allow-Methods: GET、POST、PUT、DELETE、OPTIONS"); header("Access-Control-Allow-Headers: Content-Type、Authorization"); } add_action('init', 'add_cors_headers');
- CORSプロキシの使用: CORSプロキシは、サイトと外部リソース間のリクエストを処理する中間サーバーとして機能します。レスポンスをサイトに転送する前に、必要なCORSヘッダーを追加します。
- カスタムミドルウェア: サーバーにカスタムミドルウェアを実装し、レスポンスに必要なCORSヘッダーを追加します。これは、PHP、Node.js、Pythonなどのサーバーサイドスクリプト言語を使用して行うことができます。
- サードパーティサービス: 一部のサードパーティサービスとAPIには、CORSサポートが組み込まれています。外部サービスのドキュメントを確認し、ドメインでCORSを有効にするオプションが提供されているかどうかを確認してください。
- 外部サーバー プロバイダーへの問い合わせ: 外部リソースのプロバイダーに連絡し、 Access-Control-Allow-Origin ヘッダーにドメインを追加するよう依頼します。
- サーバー設定の構成:CORSエラーを修正するためにサーバー設定を構成することができます。例えば、Apacheを使用している場合は、設定ファイルに以下のコードを追加します。
<IfModule mod_headers.c>ヘッダーをAccess-Control-Allow-Originに「*」を設定 ヘッダーをAccess-Control-Allow-Methodsに「GET、POST、PUT、DELETE、OPTIONS」を設定 ヘッダーをAccess-Control-Allow-Headersに「Content-Type、Authorization」を設定</IfModule>
Nginx の場合は以下を使用できます:
location / { if ($request_method = 'OPTIONS') { add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization'; return 204; } add_header 'Access-Control-Allow-Origin' '*'; }
CORS の問題が解決されたかどうかをテストするにはどうすればいいですか?
まず、WordPressサイトを更新して、変更が反映されているかどうかを確認します。場合によっては、単純にリロードするだけでCORSエラーが修正されているかどうかがわかることがあります。.
- ブラウザのコンソールを確認してください。 ブラウザの開発者ツールを開き、「コンソール」タブに移動して、CORS関連のエラーメッセージがないか確認してください。エラーメッセージがない場合は、問題が解決している可能性があります。
- ネットワークリクエストの確認: 開発者ツールの「ネットワーク」タブに切り替えてページを再読み込みします。ここで、以前に失敗したリクエストが修正されているかどうかを確認します。また、これらのリクエストをクリックして、正しいヘッダーが設定されているかどうかも確認してください。
- 機能のテスト: API 呼び出し、フォントの読み込み、AJAX リクエストなど、CORS エラーが原因で失敗していた機能が期待どおりに動作するかどうかを確認します。
また、オンライン CORS チェック ツールを使用して、アクセスしている外部リソースがクロスオリジン リクエストを許可するように正しく構成されているかどうかを確認することもできます。.
学ぶを WordPressサイトでユーザビリティテストを実行する方法
CORS 設定のベストプラクティス
これらのベスト プラクティスに従うことで、CORS を安全に構成し、WordPress サイトが保護された状態を維持しながらスムーズに機能できるようになります。.
- 特定のオリジンを許可: ワイルドカード(*)を使用してすべてのオリジンを許可するのではなく、リソースへのアクセスを許可するオリジンを正確に指定します。これにより、信頼できるドメインへのアクセスを制限し、セキュリティを強化します。
- 許可するメソッドを制限する: など、アプリケーションに必要なHTTPメソッドのみを許可します GET、POST、OPTIONS。これにより、不正なアクションのリスクを最小限に抑えることができます。
- ヘッダーを制限する: アプリケーションが必要とする特定のヘッダーのみを許可します。これにより、機密情報の不必要な漏洩を防ぎます。例えば、 「Content-Type」と「Authorization」 。
- プリフライトリクエストの使用: サーバーデータに影響を与える可能性のあるリクエストには、プリフライトリクエストを使用してください。これにより、ブラウザは OPTIONS リクエストを送信して権限を確認します。
- 適切な最大保存期間を設定する: を定義して Access-Control-Max-Age 、プリフライトリクエストの結果をキャッシュできる期間を指定します。これにより、サーバーが処理するプリフライトリクエストの数が減り、パフォーマンスが向上します。
最後に、CORS 設定を定期的に確認・監視し、セキュリティと機能の要件を満たしていることを確認してください。アプリケーションの進化に合わせて設定を更新してください。.
さらに学ぶ: WordPressデータベースパフォーマンスの最適化
まとめ
WordPressにおけるCORSエラーへの対処は、ウェブサイトの機能とユーザーエクスペリエンスを維持するために不可欠です。.
よくある状況を理解し、適切な対策を講じることで、これらの問題を効果的に解決できます。.
しかし、問題が続く場合や、解決策が複雑すぎると思われる場合は、ためらわずに専門家の助けを求めてください。.
プロの WordPressサポートサービスを 利用すれば、専門的なサポートを受けられ、CORS関連の障害なくサイトがスムーズに動作することが保証されます。
WordPress CORSエラーに関するよくある質問
WordPress で CORS エラーが発生する原因は何ですか?
CORSエラーは、Webブラウザが異なるドメイン間のリクエストをブロックした場合に発生します。これは通常、サーバーの設定で適切なCORSヘッダーがレスポンスに含まれていない場合に起こります。.
これは、 WordPress REST API、XMLHttpRequest呼び出し、Elementorなどのプラグイン、および外部サービスに影響を与えることがよくあります。ヘッダーの欠落、SSL証明書の問題、またはホスティングの制限が一般的な原因です。
WordPress で CORS を有効にするにはどうすればいいですか?
CORSは、.htaccessファイル、PHPコード、またはサーバー設定ディレクティブを使用して、サーバーレベルで有効にすることができます。.
FilesMatchルールを使用してルートファイルに必要なCORSヘッダーを追加するか、ホスティングプロバイダのパネルでレスポンスヘッダーを更新してください。場合によっては、プラグインを使用することで、手動でコードを変更することなくヘッダーを管理できます。.
プラグインは CORS の問題を修正できますか?
はい、 WordPressプラグインを 使えば必要なヘッダーを追加して実装を簡素化できます。これは、コアファイルや.htaccessファイルを編集したくない場合に便利です。ただし、必ずホスティング環境との互換性を確認し、アップデート後に変更内容をテストしてください。
CORS は Web サイトのセキュリティに影響しますか?
CORSはユーザーの資格情報を保護し、クロスドメインアクセスを制限します。設定を誤るとセキュリティ上の懸念が生じる可能性があります。すべてのソースを許可するのではなく、必ずターゲットドメインを定義してください。.
ホスティングまたは SSL の変更後に CORS が壊れるのはなぜですか?
移行、SSL証明書のインストール、キャッシュレイヤー、またはコンテンツ配信ネットワークによってヘッダーが変更される場合があります。問題が解決しない場合は、ホスティングサポートチームにお問い合わせください。.