WPテーマ「cocoon」でアイコンがFontAwesomeもIcoMoonも表示されないときの解決法

ドメイン移管した際にWordPressテーマ「cocoon」でアイコンフォントがFontAwesome も IcoMoonも表示されず□になってしまいました。

それもiOSでは表示されるのになぜかWindowsだけ表示されない。

どうしたものかと思っていましたが、解決したので対処法を記しておきます。

 
よくある原因は「cocoon FontAwesome 表示されない」で検索したらいくつも出てくるので、そちらも参考にしていただきつつ、今回はちょっと違うパターンでした。

結果から言うとクロスドメインが原因でした。。

まず前提条件です。

Check
  • 移管前はアイコンも表示されていた
  • 移管する際、「WordPress アドレス」と「サイトアドレス」を別にした

原因は「WordPress アドレス」と「サイトアドレス」を別にしたところでした。

「WordPress アドレス」は実際にWP本体を置いている場所で、「サイトアドレス」はトップページのURLです。

今回は訳あって「サイトアドレス」をルートドメイン。「WordPress アドレス」をサブドメインに設定していました。

cocoonは、アイコンの読み込みはCDNではなく、ファイルを親テーマ内に置いているのですが、

今回はテーマを置いてるのがサブドメイン。参照元がルートドメインの関係になっており、そこでフォントファイルが参照不能になっていました。

参照先(WordPress アドレスに設定したサブドメイン)のhtaccessにCORSを許可するように下記コードを追記したら無事表示されるようになりました。

<IfModule mod_headers.c>
    <FilesMatch "\.(ttf|otf|eot|woff)$">
        Header set Access-Control-Allow-Origin "https://〇〇〇.com"
    </FilesMatch>
</IfModule>

下記参考にさせていただきました。