ステージングから本番にDB移行するときとかに wp_posts.post_content に格納さてるデータの img タグにサーバ名が入ってると色々と都合が悪いです。
wp-cli の search-replce コマンド使って置換すればいいんですが、何回も発生する場合はそれも面倒です。
そんな時は upload_dir flter hook を使えばいいと思うよ。
upload_dir_filter.php
<?php
// upload dir -> relative path
add_filter( 'upload_dir', function($uploads) {
if ( isset( $uploads['url'] ) )
$uploads['url'] = preg_replace( '#^(https?://|//)[^/]+/#', '/', $uploads['url'] );
if ( isset( $uploads['baseurl'] ) )
$uploads['baseurl'] = preg_replace( '#^(https?://|//)[^/]+/#', '/', $uploads['baseurl'] );
return $uploads;
});
これ、設定後のメディア挿入時に適用されるので、すでに何本か記事書いてる場合は wp-cli の search-replace とかで相対URLに置換してね。
$ wp search-replace \
http://example.com/wp-content/uploads/ /wp-content/uploads/ \
wp_posts \
--include-columns=post_content