さくらのレンタルサーバでサイト全体をhttps化

WordPressさくらのレンタルサーバのラピッドSSLが今だけ1年分が0円(2016年1月13日まで)でしたので現在制作しているサイトのhttps化を行ってみました。申込みから証明書のインストールまではスムーズに行きましたが、WordPressとBuddyPressプラグインをインストールするとページを開く時にリダイレクトループが発生して表示できない問題が発生しました。
調べてみると、こちらのページがありましたので同じように設定してみました。

まず、.htaccessの先頭に、以下の設定を追加します。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
</IfModule>

次に、wp-config.phpの先頭に以下の内容を追加します。

if( isset($_SERVER['HTTP_X_SAKURA_FORWARDED_FOR']) ) {
    $_SERVER['HTTPS'] = 'on';
    $_ENV['HTTPS'] = 'on';
    $_SERVER['HTTP_HOST'] = 'www.example.com';
    $_SERVER['SERVER_NAME'] = 'www.example.com';
    $_ENV['HTTP_HOST'] = 'www.example.com';
    $_ENV['SERVER_NAME'] = 'www.example.com';
}

これらの設定を追加することによってBuddyPressのアクティビティページなどのリダイレクトループが解消しましたが、アバターの画像やwp_head()、wp_footer()のURLがhttps化出来ておらずさらに設定が必要でした。

まず、使用するテーマのfunctions.phpに以下の内容を追加します。

if ( ! is_admin() ) {
      add_filter('includes_url', array(&$this, 'bloginfo_url'), 10, 2);
}

次に、同じテーマのheader.phpのwp_head();を以下のように変更します。

<?php 
     ob_start();
     wp_head();
     $wp_head_contents = ob_get_clean();
     $wp_head_contents = str_replace('http://', '//',$wp_head_contents);
     echo($wp_head_contents);
; ?>

さらに、同じテーマのfooter.phpのwp_footer();を以下のように変更します。

<?php 
      ob_start();
      wp_footer();
      $wp_footer_contents = ob_get_clean();
      $wp_footer_contents = str_replace('http://', '//',$wp_footer_contents);
      echo($wp_footer_contents);
; ?>

以上の設定を行うことで、どのページを開いてもhttps表示で鍵のマークが出るようになりhttps化に成功しました。
1点解消できなかったのが、WordPressの管理画面の外観のカスタマイズを開いた時にスクリプトエラーが発生し設定が出来ませんでした。原因は、functions.phpの1行でしたのでこの部分をコメントアウトすれば設定が出来ました。いつも開くページではないので設定が必要なときにのみコメントアウトしたいと思います。管理画面が表示されている時にはfunctions.phpに追加した内容は実行しない方法で解消しました。