wordpressのSSLページ対応
wordpressは単にブログ用途だけじゃなくって、CMSとしてもある程度のレベルなら十分満足できるOSSだと思う。とくに2.5系?からはウィジェット機能もついてだいぶ自由度も増してきていると思う。
ただ・・・SSL対応が面倒???WP管理画面上でSSL設定とかない。「問合せフォーム」ページをSSL化したい!とかいった場合、どうやっているんだろか?SSL用にheaderやfooterテンプレートでも用意しているんだろか?でもそれはそれでナンセンスな気もする。
ということで、bloginfo(‘template_url’) とかを使わず 独自変数で絶対パスを指定することにした。
まずは・・・HTTPアクセスかHTTPSアクセスかPORT(443)から判定する関数を書く。
functions.php
function make_urls(){
$urls['template_url'] = get_bloginfo('template_url');
$urls['stylesheet_url'] = get_bloginfo('stylesheet_url');
$urls['rss2_url'] = get_bloginfo('rss2_url');
if($_SERVER['SERVER_PORT']==443){
foreach ($urls as $k => $v) {
$urls[$k] = ereg_replace("http","https",$v);
}
}
return $urls;
}
header.phpの一行目に以下を追加
<?php $urls = make_urls(); ?>
後は、既定のテンプレートタグを使わずに、以下の様しておく。
bloginfo('template_url') → echo $urls['template_url']
bloginfo('stylesheet_url') → echo $urls['stylesheet_url']
bloginfo('rss2_url') → echo $urls['rss2_url']
こうしておけば、https:// アクセスがあった場合は、絶対パスをhttp→httpsにするのでわざわざ別のSSL用テンプレートを用意する必要はないはず。
なんかもっといい方法があるのかもしれないが、そんなに時間かけてもしょうがないかなということで・・・
むしろ、他の方法をぜひ教えてほしい。


