LoginSignup
4
4

More than 5 years have passed since last update.

[WordPress] エディタに挿入されるメディアファイルの URL を相対URLにする

Last updated at Posted at 2016-10-06

ステージングから本番に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
4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4