WordPress マルチサイトで小サイトの画像をメインサイトと同じフォルダに保存する

WordPressをマルチサイト化して小サイトの画像保存先をメインサイトと同じフォルダにする場合、下記のサイトに従ってfunctions.phpに以下のように書き込むのが自分的には一番良かった。従来のサイトでは「http(s)://ドメイン名/wp-admin/options.php」を開いて「upload_path」と「upload_url_path」を編集してたけど、そこをいじる必要もなかった。

/*** 画像をメインサイトと同じフォルダに保存する*/
add_filter(
'upload_dir',
function ($dirs) {
if ( is_multisite() ) {
$dirs['baseurl'] = network_site_url('/img');
$dirs['basedir'] = ABSPATH . 'img';
$dirs['path'] = $dirs['basedir'] . $dirs['subdir'];
$dirs['url'] = $dirs['baseurl'] . $dirs['subdir'];
}

return $dirs;
},
999
);

【WP】マルチサイトのメディアファイルの保存場所を統一する方法

マルチサイトの場合、メディアファイルの保存場所は、サイトURL/wp-content/uploads/sites/サイトID/年/月/image.jpg がデフォルトです。

当サイトの場合、https://novel.onl/word/wp-content/uploads/site/5/2023/01/image.jpg のようなURLになります。

/site/5/ のような長い記述が気になる方は、functions.php に次のコードを記入すると、子サイトのメディアファイルは全て、メインサイトと同じフォルダに保存されます。…


更新日:2024年4月15日