【WP】サイト内リンク、画像のURLをルート相対パスに変更

WordPressを使ってて、試しにサイトをSSL対応しようっ!

って思ったのですが、画像のパスがhttp://~ってなってるので

httpsでアクセスしたのに、httpが混在してるよってことで

アラートがでちゃってる。。。

でも、そこはさすがWordPress!!

安心してください!

簡単に解決できますよー

function.phpに以下のコードを追加するだけ!

function delete_host_from_attachment_url( $url ) {
    $regex = '/^http(s)?:\/\/[^\/\s]+(.*)$/';
    if ( preg_match( $regex, $url, $m ) ) {
        $url = $m[2];
    }
    return $url;
}
add_filter('wp_get_attachment_url', 'delete_host_from_attachment_url' );
add_filter('attachment_link', 'delete_host_from_attachment_url');

「wp_get_attachment_url」で画像ファイル
「attachment_link」でリンクが反映されるよー

画像のpassが、見事ルート相対パスに!

・修正前
http://xxxxx.com/aaa.jpg

・修正後
/aaa.jpg

もしくは、

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();

コメント

  1. あいだ says:

    こんにちは。functions.phpではないですか?

タイトルとURLをコピーしました