从3.8.1版开始,我就一直在运行WordPress网站网络(Multisite)。我一直在不断更新插件和核心。在某种程度上,我发现上传新图像会产生错误的结果。
当我上传文件时,它会转到wp-content/blogs.dir/7/files
, 7作为博客id。WordPress出于某种原因认为应该链接到https://siteurl.com/files/file-name.png
因此,媒体库或新添加内容中的所有图像都会被破坏。
我不记得编辑过任何配置,以前所有的文件都转到了目录,例如。wp-content/uploads/sites/7/files/2015/05/
. 我猜是更新某个插件或核心导致了该行为,但当我查看VCS的历史记录时,我无法恢复以前的上载行为,因此它暗示该问题可能是由文件权限引起的。htaccess或类似产品。我也试着和他们一起玩,但没有成功。
在查看源代码时,我不知道它以前是如何工作的。有一行定义了博客的上传路径。此处为目录https://github.com/WordPress/WordPress/blob/master/wp-includes/ms-default-constants.php#L31
我试图覆盖这三个值
define( \'UPLOADBLOGSDIR\', \'wp-content/blogs.dir\' );
define( \'UPLOADS\', UPLOADBLOGSDIR . "/{$wpdb->blogid}/files/" );
define( \'BLOGUPLOADDIR\', WP_CONTENT_DIR . "/blogs.dir/{$wpdb->blogid}/files/" );
使用
define( \'UPLOADBLOGSDIR\', WP_CONTENT_DIR . \'/uploads\' );
define( \'UPLOADS\', UPLOADBLOGSDIR . "sites/{$wpdb->blogid}/" );
define( \'BLOGUPLOADDIR\', WP_CONTENT_DIR . "/uploads/{$wpdb->blogid}/" );
但是我无法在wp配置中获得$wpdb->blogid。php,所以它不工作。尽管如此,我还是不知道它以前是怎么工作的。
有什么想法吗?
P、 S刚刚发现上传对顶级博客有效。
P、 S2尝试在顶级博客中上载文件。它显示指向的链接/wp-content/uploads/2015/05/Screen-Shot-2015-05-29-at-09.56.02.png
在媒体浏览器中。现在当我打开/wp-includes/ms-files.php?file=2015/05/Screen-Shot-2015-05-29-at-09.56.02.png
我得到一个404,当我回显文件路径ms文件时。php试图包括/wp-content/blogs.dir/1/files/2015/05/Screen-Shot-2015-05-29-at-09.56.02.png