【问题标题】:Wordpress Upload directory to external folder or site's parant folder . how to?Wordpress 将目录上传到外部文件夹或站点的父文件夹。如何?
【发布时间】:2013-11-02 18:32:17
【问题描述】:

我遇到了 wordpress 上传文件夹的问题...我不知道之前是否在这里讨论过...

我在一个域下运行三个站点,例如

01.mydomain.com
02.mydomain.com
03.mydomain.com

所有这些站点在主域下都有自己的安装目录,例如

mydomain.com/site01
mydomain.com/site02
mydomain.com/site03

现在的问题是......每个站点都将其文件上传到自己的目录中......我希望所有这些文件都上传到一个目录中,在主目录中......这是父目录。

mydomain.com/files

这样文件应该可以在网站的任何地方使用......并且文件的链接将更容易记住......以及其他一些用途......

如果不清楚,我很抱歉......如果是,请告诉我......

【问题讨论】:

  • 您可能应该进行多站点安装。
  • Multisite 可能是一个很好的解决方案,但我知道我不能对安装做任何事情......我必须对当前安装做一些事情......

标签: php wordpress


【解决方案1】:

正如迈克尔建议的那样,我会使用 WP 的多站点功能。

然后你可以更改常量WP_CONTENT_URL

上传 URL 路径由“upload_url_path”选项或 通过使用“WP_CONTENT_URL”常量并将“/uploads”附加到 路径。

您可以在 wordpress.org 上阅读有关 wp_upload_dir 的更多信息

您也可以尝试此处发布的解决方案:http://wordpress.org/support/topic/change-file-upload-folders-on-wordpress-30-multi-site

我挖了又挖了好几个小时,终于找到了方法 最终控制上传文件夹。

每当 WP 即将保存上传时,它都会运行 wp_upload_dir() 函数存储在 wp-includes/functions.php 中。该功能提供了一个 过滤以更改您喜欢的任何内容 - 包括上传 目录。

我用它来制作每个用户的个人上传文件夹:

add_filter('upload_dir', 'ml_media_upload_dir');

/**
 * Changes the upload directory to what we would like, 
 * instead of what WordPress likes.
 */
function ml_media_upload_dir($upload) {
    global $user_ID;
    if ((int)$user_ID > 0) {
        $upload['subdir'] = "/" . $user_ID;
        $upload['path'] .= $upload['subdir'];
        $upload['url'] .= $upload['subdir'];
    }

    return $upload;
}

【讨论】:

  • 感谢您的详细回答.....我真的很喜欢...... Multisite 可能是一个很好的解决方案......但我必须对我当前的安装做一些事情并且无法重新安装我的所有数据、设置和自定义....再次感谢.... :) ....请告诉我您是否可以在这种情况下提出建议....
  • 这应该不是问题。安装 WP,启用 Multisite 并安装您正在使用的任何插件。然后创建 3 个新站点并确保它们已启动并运行。完成后,只需从现有站点导出数据并将其导入多站点。将数据从一个站点导入/导出到另一个站点时,总会有一些手动工作/配置。但是一旦它到位,它会让你的事情变得更容易。我强烈建议您阅读 WP 的原理和组合方式。如果这种方式解决了您的问题,请投票,然后选择V接受答案。
猜你喜欢
  • 2012-04-07
  • 1970-01-01
  • 2012-04-21
  • 1970-01-01
  • 2019-08-29
  • 2016-05-03
  • 1970-01-01
  • 1970-01-01
  • 2019-03-17
相关资源
最近更新 更多