插件保存/缓存文件的标准位置?


9

是否有关于插件应在何处缓存文件的官方指南?

如果没有,是否有我可以遵循的最佳实践?

例如,插件从后端系统获取内容可从缓存文件中受益,因此它不会重复从后端获取相同的内容。

由于大多数查询都会导致缓存插件或数据库教程,因此在这里和其他地方进行搜索非常困难。

我的直觉是将它们放入的子目录中wp-content/uploads

我的第二本能是将文件保留在插件的目录树中。这样可将插件数据分组在一起,但不会遵循其中包含用户内容的WordPress体系结构(看上去是这样)/uploads

Answers:


6

如果WordPress具有基于标准的缓存目录会很好,但是由于我认为最好的选择是将其保留在plugin文件夹中。

在我看来,上传是实际上传的内容,而缓存文件并没有真正被认为是这样。我认为它更易于管理,减少可能的冲突,并且说实话,如果插件具有此功能,这就是我要寻找的地方。

tl; dr:缓存文件是特定插件功能的一部分,应与其打包在一起。


1
这种方法的问题在于,除了上载文件夹之外,许多人都禁用了对任何内容的写访问权限。
kraftner 2015年

1
更新插件后,WP会完全删除旧插件,然后从头开始重新创建。因此,即使您专门为插件中的缓存目录设置了权限,每次升级不仅会删除缓存的文件,还会删除所有这些写入权限的痕迹。
杰森

我看过几个做WP_CONTENT_DIR / cache的过程,并且在插件文件夹中解决了一段时间之后,我认为我将过渡到该过程。正如Jason所说,数据可能会不必要地丢失,而且(尽管对于临时用户而言这不是问题),插件文件夹的大小会不成比例地增长,而我想将该文件夹视为开箱即用的公平表示。
卢克·索扎克

1

如果您不需要存储非常大的数据,则应查看Wordpress Transient API:

http://codex.wordpress.org/Transients_API

您的数据将由Wordpress处理,并带有到期时间。我认为这是缓存数据的更“ WordPress方式”。


在这种情况下,数据可能会很大...但是我真的很喜欢这种Transients方法来处理较小的内容。感谢您指出。:)
马修·巴卡蒂斯

0

坐着同样的“问题”。起初,我考虑将此缓存存储为一个选项,但是我的缓存太大了,因此无法正常工作。因此,如果您的缓存永远不会很大,那也许是另一种选择。例如,如果您正在使用API​​进行通信,并且每小时只能执行几个请求,并且返回答案不会太长。:)

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.