2

当使用 wp 多站点时,它会很快搞砸。是否有任何解决方案可以删除自动 /sites/{id}/ 文件夹结构?

我可以在站点设置中调整站点上传目录,但它总是通过媒体管理器将“/sites/{id}/”添加到上传的文件中。

是否有任何可用的片段可以删除/禁用这些额外的文件夹结构?

4

1 回答 1

2

首先,我最终更改了核心wp-includes/functions.php以禁用添加:

if ( defined( 'MULTISITE' ) )
  $ms_dir = '/sites/' . get_current_blog_id();
else
  $ms_dir = '/' . get_current_blog_id();

在我的hack下面的一行:

$ms_dir = '';

但过了一会儿,我发现了这个可以使用钩子的解决方案。例子:

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,
    );

}

于 2018-11-23T21:25:54.273 回答