Upload media only to DB

时间:2020-12-30 作者:Peter Badida

我使用的是最新的WordPress(5.6),据我所知,没有将媒体直接上传到DB的可见设置。是否有这样一个隐藏的选项,或者WordPress不支持DB作为媒体存储而不是wp-content/uploads?

我希望使用DB作为优先(或唯一,如果可能的话)存储,而不是文件系统,然后直接从DB加载媒体(如post映像)。

1 个回复
最合适的回答,由SO网友:Celso Bessa 整理而成

是的,现成的WordPress只将图像和其他上传内容存储为文件。

虽然从理论上讲,可以通过点击wp_handle_upload()_wp_handle_upload() 和相关的功能,我觉得太复杂和不可靠了。此外,我认为在图像太多的情况下,出于性能原因,这不是一个好主意(再说一遍,我不是DB专家)

为了更好地衡量,如果要更改上载文件夹的位置,可以通过定义UPLOADS wp配置中的常量。php文件:

define( \'UPLOADS\', \'new-folder-for-uploads\' );
编辑1添加我对Peter Badida评论的回应:

我不能肯定,但我想你可以试试filesystem_method_file 筛选WP\\u Filesystem函数,位于/WP admin/includes/file的第1867行。php并添加您自己的抽象。

请记住,插件和主题可能会使用函数、动作和filters 它依赖于基于磁盘的文件系统。因此,您需要保留大量当前文件系统以实现兼容性,并使事情变得比需要的更复杂。智能和WP开发面临巨大挑战,但从实用的角度来看,我会坚持使用默认的文件系统。

编辑2(来自注释)

WordPress的构建方式可以覆盖或扩展其许多功能,主要是通过使用filtersactions hooks. 坚持下去,你就会少很多头痛和不兼容的问题。

Here 您可以找到所有或大部分挂钩。此外,您可能要搜索apply_filterdo_actionWordPress核心代码基上的字符串。