WordPress で URL をすべて相対 URL にする方法

WordPress で SSL 対応した時に、プラグインが書き出すリンクやコンテンツ内のリンクが https:// にならずに哀しくなることはありませんか?
そんなときは、こんな感じのコードを functions.php に書いておけば、一発で全てのリンクを相対URLに変更してくれますよ。

class relative_URI {
	function relative_URI() {
		add_action('get_header', array(&$this, 'get_header'), 1);
		add_action('wp_footer', array(&$this, 'wp_footer'), 99999);
	}
	function replace_relative_URI($content) {
		$home_url = trailingslashit(get_home_url('/'));
		return str_replace($home_url, '/', $content);
	}
	function get_header(){
		ob_start(array(&$this, 'replace_relative_URI'));
	}
	function wp_footer(){
		ob_end_flush();
	}
}
new relative_URI();

ob_start() 関数を使っているので、ob_start() を使っているプラグインとは相性が悪いかもしれません。
# 例えば、私の作った Head Cleaner とか。

WordPress で URL をすべて相対 URL にする方法」への7件のフィードバック

  1. aiu

    このような方法で、画像とjsファイルとcssのリンクのみに適用される方法は無いでしょうか?
    aタグは絶対パスにしたいのですが…。
    随分前の記事のコメントでこんなことを尋ねて申し訳ありません。

    返信
  2. ピンバック: WordPressで自ドメインのURLを相対パスに変換する方法 | モンキーレンチ

  3. ピンバック: ury-u » 絶対パスから相対パス

  4. ピンバック: 2011-03-19 | WordPressまとめ記事

  5. ピンバック: WordPress で細かいところまで手動で SSL 対応させる方法 | ウェブル

コメントを残す

メールアドレスが公開されることはありません。