禁用 WordPress 多站点修改媒体 URL
Disable WordPress Multisite Modifying Media URL
我正在使用 DigitalOcean Spaces 来存储我的静态资产。一切正常,我的媒体库 url 指向我的空间(例如 foobar.sgp1.digitaloceanspaces.com)。
当我安装多站点时问题就开始了,因为 WordPress 的默认行为是将 "sites/xxx" 添加到所有子站点的媒体 url(例如 foobar.sgp1.digitaloceanspaces.com/sites/2 ).当然,我的资产不在那里,也找不到。
我找到了这个 link:
这给了我一个主意。
我已经在 functions.php
上试过了
add_filter('upload_dir', 'multisite_path');
function multisite_path( $param ){
$path = str_replace('sites/2/', '', $param['path']);
$url = str_replace('sites/2/', '', $param['url']);
$param['path'] = $path;
$param['url'] = $url;
return $param;
}
但是没用。
如果有从 url 中删除 "sites/2/" 的钩子,或任何其他禁用此功能的方法,我愿意征求建议。
谢谢。
在此处找到解决方案:
wordpress multisite remove /sites/{ID}/ automatic upload url
这是工作代码:
add_filter( 'upload_dir', 'same_upload_dir' );
function same_upload_dir( array $uploads ) {
$baseurl = WP_CONTENT_URL . '/uploads';
$basedir = ABSPATH . 'wp-content/uploads';
$subdir = $uploads['subdir'];
return array(
'path' => $basedir . $subdir,
'url' => $baseurl . $subdir,
'subdir' => $subdir,
'basedir' => $basedir,
'baseurl' => $baseurl,
'error' => false,
);
}
我正在使用 DigitalOcean Spaces 来存储我的静态资产。一切正常,我的媒体库 url 指向我的空间(例如 foobar.sgp1.digitaloceanspaces.com)。
当我安装多站点时问题就开始了,因为 WordPress 的默认行为是将 "sites/xxx" 添加到所有子站点的媒体 url(例如 foobar.sgp1.digitaloceanspaces.com/sites/2 ).当然,我的资产不在那里,也找不到。
我找到了这个 link:
这给了我一个主意。
我已经在 functions.php
上试过了add_filter('upload_dir', 'multisite_path');
function multisite_path( $param ){
$path = str_replace('sites/2/', '', $param['path']);
$url = str_replace('sites/2/', '', $param['url']);
$param['path'] = $path;
$param['url'] = $url;
return $param;
}
但是没用。
如果有从 url 中删除 "sites/2/" 的钩子,或任何其他禁用此功能的方法,我愿意征求建议。
谢谢。
在此处找到解决方案:
wordpress multisite remove /sites/{ID}/ automatic upload url
这是工作代码:
add_filter( 'upload_dir', 'same_upload_dir' );
function same_upload_dir( array $uploads ) {
$baseurl = WP_CONTENT_URL . '/uploads';
$basedir = ABSPATH . 'wp-content/uploads';
$subdir = $uploads['subdir'];
return array(
'path' => $basedir . $subdir,
'url' => $baseurl . $subdir,
'subdir' => $subdir,
'basedir' => $basedir,
'baseurl' => $baseurl,
'error' => false,
);
}