清理上载文件夹,媒体库数据库结构


10

我正在对旧博客进行升级和清理,该博客始于Blogger.com,然后移至自托管的WordPress 2.1、2.3和现在的3.0。帖子中的图像散落在周围:大多数图像位于中/wp-content/,但并非全部位于/wp-content/uploads/或中/wp-content/uploads/year/month/。其他人仍然引用blogger.com图像服务器。我想将它们全部合并到/wp-content/uploads/year/month/,我认为这是“正确”的地方?这将使以后的升级更加容易。

做这个的最好方式是什么?我也想更新元数据,以便媒体库可以管理所有元数据。我找不到与此有关的任何文档,因此对不起,如果错过了,请指向我。

当然,我会提供从旧位置到新位置的重定向。做这个的最好方式是什么?404.php插件的模板?我想添加一些日志记录,以便我们可以找到引荐页面并进行更正。

(此问题最初是在WordPress支持论坛上提出的,但那里没有有用的答案)。


您是否正在寻找可以完成此工作的插件?
hakre 2010年

简?对您的问题有任何意见吗?没有答案让你满意吗?没有评论有帮助?
hakre

我同意某种媒体批量编辑器将很有用。一种使您可以从不同的文件夹导入媒体并根据某些规则快速移动它们的功能。我可能会实际进行这项工作。
2010年

Answers:


7

W3-Total Cache具有一项功能,它将扫描您的所有帖子并将所有外部图像导入媒体库,并将路径更改为新位置。

见截图

替代文字


2

正确的位置是我要说的当前设置。因此,如果您现在使用一个上载文件夹(而不是年/月子文件夹),请选择一个上载文件夹(可能会很满,但更容易排序),因此只需将所有文件从年/月子目录移至上载目录并更改URL -数据库中的路径通常应完成此工作。

将所有文件放在一个文件夹中(并进行排序)后,您可以再次更改文件夹设计,并使用一个PHP脚本将文件移至正确的目录,该脚本从数据库中读取日期。完全相同的脚本也需要再次采用URL路径。

这就像迈克建议的脚本一样。

目前,WP UI不支持手动移动或重命名文件,因此您必须绑定一些自己的代码。无论如何,这对于批次是有意义的。

现有和相关的插件


1

@Jan Fabry:您可能需要分别处理每种情况,即Blogger托管的图像和wp-content之外的图像等。

这是一个用于从Blogger导入的插件;它已经有一段时间没有更新了,但是可能仍然有效,或者至少有您可以使用的代码:

还有一个较旧的插件可能仍然有效,或者可能仍然无效:

除此之外,我认为您只需要编写一个PHP脚本即可扫描您的文件,然后扫描您的帖子以查找嵌入的图像URL,创建一个相交的列表,然后移动文件并更新帖子中的引用。也许您会很幸运,并且该插件仍然可以为您效劳!

祝好运。


0

也许(这只是给将来的读者使用的-这是一个老问题),您可以列出所有'post_type'=>'attachment'并从那里开始分离。我的意思是获取帖子并将不同的位置保存在一个数组中。然后整理一下以大致了解您的图像所处的位置...


1
@kaiser:这可能是一个古老的问题,但是我仍在研究其中的一部分,因此欢迎提出所有建议!我希望尽快写下最终的答案。
Jan Fabry

@Jan:我想我会调用所有“ post_type” =>“ attachment”,然后调用该位置(如果此位置存储在query_vars中的某个位置),并且如果某个预定义(第一个空)数组中不存在该位置,则将其推入那里。结果我会尝试使用array_intersect或类似的东西,只是返回不同的位置。那只是关于如何找出这些东西在哪里散布的一些第一手和快速的'肮脏/粗略的想法'。到目前为止,我不知道如何处理结果或重定向...
kaiser

...我想可以获取不同的附件位置,然后移动它们并更新数据库中的位置。我不太在乎重定向。该帖子知道它,何时数据库知道它,以及谁真正在乎附件的索引。您希望没有人直接/热链接您的图像(或附件模板),而是链接到该包含的帖子。我个人从未使用过附件模板,甚至从未设置过帖子内附件的链接(除了灯箱等)。
kaiser

@kaiser:我目前首先创建重定向并将所有“丢失”的图像移到该/wp-content/uploads/moved/目录下。这样,所有帖子,即使是那些引用旧位置的帖子,都将继续工作,而且我的其他目录也很清楚(这对我来说是最大的问题:不清楚WordPress属于什么,不属于WordPress)。现在,我要更新现有的附件并添加尚未添加为附件的图像。
Jan Fabry

@Jan:“现在,我正在更新现有附件,并添加尚未添加为附件的图像。” 每手-点点滴滴?我不太清楚,但是我想只要搜索引擎不知道新位置,您就只需要重定向。其余应依靠db-entries。错误?
kaiser
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.