画像やリンクのURLを絶対パスから相対パスに変更する

Wordpress

WordPressは、記事投稿の際に画像やリンクを追加しようとすると以下のようにhttpから始まるURLで指定されます。

<a href="https://www.example.com/wp-content/uploads/yyyy/mm/logo.png">
  <img src="https://www.example.com/wp-content/uploads/yyyy/mm/logo.png" />
</a>

上記でも問題はありませんが、後々ドメイン変更によりホスト名が、www.eample.comからwww.example2.com へ変更した場合、全ての記事を見直して修正するという手間の掛かる作業を行う羽目になります。

この手間を省く為に以下の記事投稿の際に画像やリンク設定時のURLを上記の絶対パスから以下のような相対パスで設定される方法を説明します。

<a href="/wp-content/uploads/yyyy/mm/logo.png">
  <img src="/wp-content/uploads/yyyy/mm/logo.png" />
</a>

設定方法

functions.phpへ以下のコードを追加します。

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

以上。

コメント

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