WordPressネタばかりで嫌だ・・・。1日1個おかしな点が見つかる・・・。
Summary
- WordPress 管理画面をSSLで運用
- アイキャッチ画像を選ぶときに、アップロードした画像が見れない
- 管理画面がSSLなのに
img
タグのsrc
が HTTP通信なのが原因(WordPress自体のバグ) - さっさと直してくれよお願いだから。
Details
管理画面を SSL で運用(するよね?普通)
一応商業利用ですもの、管理画面はSSLにするじゃないですか。
もともとあまり考えられていないのか?SSLにすると何かしら事件が起きる WordPress ですが・・・
画像が見えない
よしきた。
管理画面に SSL を導入したその日、ログイン画面で CSS や画像が見えない事件が発生したが、それと同じ理由。
最近の(?)WEBブラウザは HTTPS の画面から HTTP通信しようとすると事前に止めてくれます。親切設計。
その時やった設定はこちら↓
...
DocumentRoot /root/to/wordpress
SetEnv HTTPS on #これを追加
...
ELBの背後で80番しか受け取らないようにしているので、自分で環境変数を設定する必要があり。
wordpress 内に実は is_ssl()
という関数があって、その中で環境変数を読んでくれます。
3367 function is_ssl() {
3368 if ( isset($_SERVER['HTTPS']) ) {
3369 if ( 'on' == strtolower($_SERVER['HTTPS']) )
3370 return true;
3371 if ( '1' == $_SERVER['HTTPS'] )
3372 return true;
3373 } elseif ( isset($_SERVER['SERVER_PORT']) && ( '443' == $_SERVER['SERVER_PORT'] ) ) {
3374 return true;
3375 }
3376 return false;
3377 }
基本的にはSSLかどうかの判定はこの is_ssl()
を使ってやっていて、CSSや画像もSSL通信に変えてくれるのですが・・・。
画像が見れないとはどういう了見だ(#゚Д゚)ゴルァ!!
アイキャッチ画像が見れない。
自分でアップロードした画像を「アイキャッチ画像」として選ぶのですが、その画像が見れない。
要素を検証すると、どっかで見た状態。
<img src="http://xxx...">
(つд⊂)ゴシゴシ
(つд・)
(つд⊂)ゴシゴシ
(・д⊂)
なんでや!(#゚Д゚)ゴルァ!!
調べた
こんな記事を見つけた↓
https://core.trac.wordpress.org/ticket/15928
WordPress の既存バグじゃねぇかよ!!!
3年前から議論してて未だに未対応って・・・。
4.0 で入れっからーじゃねぇよ(#゚Д゚)ゴルァ!!
直した
使ってるテーマの functions.php
に以下を追加。
※ちなみに添付されてる最新のパッチでは直りませんでした\(^o^)/
// http => https -----------------------------------------------------
function fix_ssl_attachment_url( $url ) {
if( is_ssl() ){
$url = preg_replace('/^http:/', 'https:', $url);
}
return $url;
}
add_filter('wp_get_attachment_url', 'fix_ssl_attachment_url');
もういい加減 WordPressネタやめたい・・・。