以前紹介したWordpressプラグインScroll to Topが、SSLでエラーを出していた。
エラー内容は以下の通り。
Mixed Content: The page at ‘https://www.hoge.com/’ was loaded over HTTPS, but requested an insecure script ‘http://www.hoge.com/wp-content/plugins/scroll-to-top/js/stt.js?ver=1.0′. This request has been blocked; the content must be served over HTTPS.
プラグイン用のJSが、http://から呼ばれているためにブロックされている。
WordPressが吐いたソースを見ても
<script type=’text/javascript’ src=’http://www.hoge.com//wp-content/plugins/scroll-to-top/js/stt.js?ver=1.0’>
となっている。
そりゃーブロックされますよね。
修正するには、/wp/wp-content/plugins/scroll-to-top/stt.phpを修正する。
元のソース
wp_enqueue_script(‘stt’, WP_PLUGIN_URL . ‘/scroll-to-top/js/stt.js’, array(‘jquery’), ‘1.0’ );
↓
修正後
wp_enqueue_script(‘stt’, plugins_url() . ‘/scroll-to-top/js/stt.js’, array(‘jquery’), ‘1.0’ );
WP_CONTENT_URLやWP_PLUGIN_URLは、Wordpressの管理画面で設定されたURLを読むだけなので、SSLを自動認識しない。
site_url()やplugins_url()を使わないとダメ、ってことですね。
JSやCSSを追加する系プラグインは、同じ様な方法で修正できるんじゃないかと思います。
One thought on “WordPressのプラグインがSSLでエラーを出すので修正”