WordPressでのパス指定を絶対パスから相対パスに変更する方法

WordPressで使用するパス指定は絶対パスのものが多いですが、これをルートからの相対パスに変更する方法を紹介します。

サイトのキャプチャ

How to make WordPress URLs root relative

このブログではパス指定では現状困っていませんが、ポータビリティ(サイトの移転)、ダウンロードサイズ、コードの簡潔さなどを求める際には相対パスの方が有利になります。

ルートからの相対パスにするには、下記のコードをテーマファイル内の「functions.php」に記述します。
※「functions.php」が無い場合は作成してください。

PHP

URLの文字列から「http(s)」と「ドメイン」を取り除きます。

function make_href_root_relative($input) {
    return preg_replace('!http(s)?://' . $_SERVER['SERVER_NAME'] . '/!', '/', $input);
}

PHP

「the_permalink() 」に、この機能を加えることも可能です。

function root_relative_permalinks($input) {
    return make_href_root_relative($input);
}
add_filter( 'the_permalink', 'root_relative_permalinks' );

適用しテンプレートに「<? php the_permalink () ; ?>」を使用すると、下記のようになります。

適用前:
http://www.example.com/page-or-post-url/
適用後:
/page-or-post-url/

top of page

©2017 coliss