SSL化したWordPressでWP_PLUGIN_URLを使うとエラーになるときの対処法

Web制作
2017.11.26

SSL(https)に移行したWordPressで、プラグインの設定画面で表示崩れが発生しました。

結論から言うと、プラグインディレクトリのURLを取得するWP_PLUGIN_URLが「http://~」でファイルを読み込んでいたのが原因でした。WP_PLUGIN_URLをplugins_urlに変更することで解決。

SSL(https)移行したサイトのプラグインでCSSとJSの読み込みがブロックされる

SSL(https://~)に移行したWordPressでは、WP_PLUGIN_URLでプラグインディレクトリのURLを取得すると「http://~」という形でCSSやJSなどのファイルと読み込みます。

そのため、ブラウザで読み込みをブロックされることが表示崩れの原因になっていました。

WP_PLUGIN_URLではなくplugins_urlを使えばOK

プラグインファイルの中で使用されているWP_PLUGIN_URLをplugins_urlに書き換えることで、「https://~」という形でプラグインディレクトリURLを取得することができます。

修正前
<script src="'.WP_PLUGIN_URL.'/'.str_replace(basename(__FILE__),"",plugin_basename(__FILE__)).'/js/functions.js"></script>
<link rel="stylesheet" href="'.WP_PLUGIN_URL.'/'.str_replace(basename(__FILE__),"",plugin_basename(__FILE__)).'/style.css" type="text/css">
修正後
<script src="'.plugins_url().'/'.str_replace(basename(__FILE__),"",plugin_basename(__FILE__)).'/js/functions.js"></script>
<link rel="stylesheet" href="'.plugins_url().'/'.str_replace(basename(__FILE__),"",plugin_basename(__FILE__)).'/style.css" type="text/css">

SSL化したサイトでは「http://~」の読み込みがブロックされる

ちょこっと前に作ったサイトだと、例えばGoogleフォントの読み込みコードが「http://~」になっていたりします。

そういう場合も読み込みがブロックされて表示がうまくいかないことがあるので注意が必要です。

この記事を書いた人
柴田 竹思

フリーランスWebディレクター/デザイナー。Webデザイン事務所Bamboo Works代表。中小企業・個人事業主のWebサイト制作のほか、官公庁や大手企業のプロジェクトにも携わる。日本とベトナムの二拠点生活中。