为什么WordPress不使用WP_FilesSystem

时间:2016-03-22 作者:nonsensecreativity

在wp管理/插件编辑器上。php和wp管理/主题编辑器。php,为什么WordPress不使用$wp\\u文件系统来读取和修改文件?如果写入和修改文件不需要wp\\U文件系统,那么何时使用wp\\U文件系统?

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

WP\\u文件系统的真正需要是能够在写入新文件时设置正确的文件所有者/组权限。读取或覆盖现有文件不会更改这些权限,因此技术上不需要WP\\U文件系统(尽管您也可以使用它)

原因是,在不检查所有者/组权限的情况下编写新文件是一种潜在的安全风险,因为这些文件可能是可更改的,因此会注入代码并执行(主要在安全性较差的共享服务器上,但如果是插件和主题,则无法了解最终用户的设置。)

参考号:http://ottopress.com/2011/tutorial-using-the-wp_filesystem/#comment-10820

问题:如果您只获取文件的内容,则无需担心获取凭据,对吗?您从未将文件写入服务器,因此文件所有权没有问题。同样,如果要更新已存在的文件的内容,则不会创建该文件,因此,文件所有权也没有问题,对吗?

回答:如果您正在读取文件,则没有问题如果您正在更新文件,而没有所有权问题,则不应该更新插件或主题中的文件,因为升级插件或主题时更新将丢失。这意味着要跨升级进行维护,您需要在插件/主题目录之外创建一个新文件,这意味着您仍然应该使用WP\\u文件系统。

所以在回答这个问题时,对于插件和主题编辑器来说,技术上并不需要它,因为它们只编辑现有文件,您无法使用它们创建新文件。(因此,有点假设您知道,如果稍后更新插件/主题而不采取步骤保留更改,则更改将丢失。)

但从更广泛的意义上讲,这个问题可以被视为;何时应该/必须使用WP文件系统"E;由于它输出用户管理表单(当正确的权限尚未到位时),因此在创建新文件时(通常通过设置页面)必须将其用于面向管理的选项

如果可以避免创建新文件(通常情况下),这通常会更好,因为这会让用户混淆为什么需要凭据(除非您添加一些说明!)如果必须创建新文件,请使用WP文件系统。同样,出于类似的原因,您可能希望使用它来创建目录(尽管无法执行目录)

更好的做法是在可能的情况下也使用它来更新文件,因为它可以提醒用户他们对这些文件的所有权权限可能是错误的-他们会得到表单(但除非你解释,否则他们也不知道为什么!)但严格来说,这不是必要的。也可以使用它读取文件(但完全没有必要)

当然,最终也会有例外it depends on the use case. 通过提供的相同链接可以找到关于不同用例的进一步讨论。

相关推荐

EDITOR-Style.css功能

场景:我有一个客户很难理解,他在WordPress面板上看到的帖子字体样式不一定是前台显示的样式。TinyMCE插件的过度使用导致每个文本块标记内部都有一个跨度,因为他试图使编辑器与前面已经发生的事情相匹配,因为有一个子主题。由于这种做法,网站上的文本格式不统一。目标:我想让编辑器的字体(乔治亚州)与他想要的字体在前面匹配(而这正发生在前面)。此外,我想更改格式菜单,以匹配我们商定的子主题CSS。设置:他使用的主题没有编辑风格。css。我已经添加了一个,但我的研究导致了信息的混乱,而不是一套清晰的说明&l