【问题标题】:Disable WordPress Multisite Modifying Media URL禁用 WordPress 多站点修改媒体 URL
【发布时间】:2019-05-17 20:20:25
【问题描述】:

我正在使用 DigitalOcean Spaces 来存储我的静态资产。一切正常,我的媒体库 url 指向我的空间(例如 foobar.sgp1.digitaloceanspaces.com)。

当我安装多站点时,问题就开始了,因为将“sites/xxx”添加到所有子站点的媒体 URL(例如 foobar.sgp1.digitaloceanspaces.com/sites/2)是默认的 WordPress 行为。当然,我的资产不在那里,也找不到。

我找到了这个链接:

https://wordpress.stackexchange.com/questions/307530/remove-multisite-part-from-wordpress-multisite-upload-directory

这给了我一个想法。

我在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


    【解决方案1】:

    在这里找到解决方案:

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

    【讨论】:

      猜你喜欢
      • 2011-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多