site_url や home_url もちゃんと https 指定してるんだけど!?
さくらサーバのSSLなど、外側は https だけど内部は http みたいな、プロクシ経由でSSL化してるサーバ構成の場合、そんなことが起こる場合があります。 WordPress自身は http で通信されていると思っているために食い違いが出てきて、URLがおかしくなったりログインできなくなったり、不具合が出るんですね。
ちゃんとWordPress自身に https でアクセスされていることを認識してもらえば解決しますので、あわてる必要はありません。
WordPress 自身にも https だと認識してもらう
WordPress自身にSSL通信であることに気づかせるためには、設定ファイル wp-config.php
に $_SERVER['HTTPS'] = 'on';
を追加するだけでOKです。
但し、 wp-settings.php
が読み込まれる前に書く必要がありますので、ご注意下さい。(以下コードですと 9 行目より前に書いて下さい)
... /** Absolute path to the WordPress directory. */ if ( !defined('ABSPATH') ) define('ABSPATH', dirname(__FILE__) . '/'); $_SERVER['HTTPS'] = 'on'; /** Sets up WordPress vars and included files. */ require_once(ABSPATH . 'wp-settings.php'); ...
これでOKです。
書く場所を間違えないようにしましょう。