WordPressをSSL対応させるため、通常絶対URLで挿入されるリンクやパスを相対URLに置き換える方法を探していました。
上記のサイトに、functions.phpに書けば相対URLに変換してくれるコードが掲載されていたのですが、ルートディレクトリにWordPressがインストールされている場合にしか対応しておらず、僕の環境には合わなかったので、サブディレクトリにインストールしてある場合でも対応できるようにコードを修正してみました(ついでにPHP5バージョンで)。
class relative_URI { public function __construct() { add_action('get_header', array(&$this, 'get_header'), 1); add_action('wp_footer', array(&$this, 'wp_footer'), 99999); } protected function replace_relative_URI($content) { $home_url = trailingslashit(get_home_url('/')); $top_url = preg_replace( '/^(https?:\/\/.+?)\/(.*)$/', '$1', $home_url ); return str_replace( $top_url, '', $content ); } public function get_header(){ ob_start(array(&$this, 'replace_relative_URI')); } public function wp_footer(){ ob_end_flush(); } } $relative_URI = new relative_URI();
上記をfunctions.phpに追加すれば相対URLに変換されます。