存储插件/主题创建的PHP文件的位置

时间:2011-04-25 作者:onetrickpony

在某些情况下,插件或主题需要在某个地方创建一个php文件,以后可以将其包含在内。例如,一个验证码插件,或某种模板系统,如twig/smarty(在我的情况下,它是一个用于小部件集合的简单模板引擎)。

应在何处创建此文件?

我唯一能想到的地方是wp-content/uploads/, 但这听起来不对:)

那么,有没有一个安全的地方可以创建文件,而不用担心它们在WordPress/插件/主题更新中被删除?

一种解决方案是在主题/插件目录中创建一个子主题/目录。。。

6 个回复
最合适的回答,由SO网友:mfields 整理而成

IMHO的适当位置是您在wp内容目录中创建的自定义文件夹在创建文件之前请阅读以下内容:http://ottopress.com/2011/tutorial-using-the-wp_filesystem/

SO网友:Sebi

在编写Wordpress插件时,我偶然发现了你的问题。我还首先考虑创建临时文件来缓存插件创建的一些数据。然而,再仔细考虑一下,这种方法对我来说似乎很奇怪,因为如果您试图使用服务器集群来扩展临时数据,那么您不希望临时数据躺在一台服务器上。

因此,我再次搜索,似乎解决此类问题的有效方法是Wordpress Transients API 允许您在数据库中存储过期日期的数据。当然,您的问题可能仍然需要本地缓存的文件,例如,如果它们对于数据库来说太大,但至少我建议也看看这个选项:-)

SO网友:fuxia

您不能依赖插件或主题目录中的写访问权限,因此wp_upload_dir() 是唯一可能的目录
But 我真的怀疑是否有必要将信息存储在新文件中。如果模板是由用户创建的,请将其存储在一个选项中,并使用常规插件函数解析内容(例如,将占位符替换为strtr()).

SO网友:Chris_O

我只能想出几个插件需要创建文件的好理由。一种是备份复杂的选项,用户可以将这些选项导出并下载到新站点。另一个是站点地图插件。

如果你的插件有用户可以自定义的模板文件,你应该让用户选择将自定义文件移动到当前主题目录,这样当你的插件更新时,它们就不会被覆盖。您可以尝试先从主题目录加载文件,然后返回到插件目录。

Gravity Forms将表单上载的文件存储在上载中自己的文件夹中。W3 Total缓存使用wp内容,登录重定向使用上述方法。

SO网友:Chip Bennett

如果您必须创建文件(例如CAPTCHA插件的临时文件),那么您肯定应该使用\\wp-content\\uploads\\ (或自定义目录,如\\wp-content\\plugin-slug-files\\).

大多数其他自定义代码实际上应该存储在数据库中。

SO网友:hakre

我总是建议使用与PSR-0兼容的自动加载器和一个可以正常工作的库文件夹。

一些WP用户可能会向您开枪,但您可能没有关注这些用户,所以这可能是一种选择。尤其是当您获得越来越多的特定于供应商的LIB时。

结束

相关推荐

无法访问wp-login.php时如何登录?

我在家里的virtbox服务器上安装了一个自托管wordpress<我在试wordpress的插件。在启用了一些安全插件之后,我发现我无法访问wp登录名。php页面<我得到一个插件的功能,告诉我这个网站是被禁止的,不存在<问题是,我不确定是哪个插件做的我在页面的前端也没有登录链接我安装的插件有防弹安全、锁定wp admin、终极安全检查器和wp安全扫描安装在没有GUI的ubuntu服务器上,主机是mac osx,但我可以从网络访问它<如果我只是从wordpress目录中删除插件,那