我最近不得不在上一个开发人员修改wp-admin目录的项目上工作.这似乎是一个坏主意,因为Wordpress不断更新.我只是没有修改Wordpress的专业水平吗?
好吧,这只是一个坏主意,因为它意味着你现在负责维护一个内部事实上的叉子...每次WordPress发布更新时,你必须做一个三向差异将你的更改合并到新的"真实" "WordPress.(三向差异意味着您在旧版本的分支和标准旧版本之间进行差异以构建补丁集,然后将该补丁集应用于新版本.)您还应该自己使用VCS来保持自己理智.
如果你没有达到这一点,那么你就没有达到它,遵循KISS原则并没有弄乱应用程序代码没有任何问题.
如果您可以编写一个执行相同操作且同样有效的插件,那么您应该这样做,这样您就不必维护自己的fork.
但是,WordPress在(效率,安全性)方面有很多东西可以通过破解应用程序代码来改善(有时没有太多工作,只需通过禁用您不需要的代码).WordPress是一个肮脏的传统意大利面条代码,最初由几乎没有软件或数据库设计知识的人编写,并且它做了很多非常愚蠢的事情,例如在每次请求时查询数据库以查看它自己的siteurl
内容,当它永远不会改变时 - 那里有花5分钟更改2行代码没有错,所以不再这样做了.
我在当时排名前20位的Technorati排名博客上担任技术主管,并做了大量工作,在单个服务器上扩展WordPress,然后进入集群(使用单独的服务器进行管理与公共访问).我们有上游反向代理(即Varnish或Squid)作为HTTP加速器和内部对象/页面片段缓存系统,它使用PEAR :: Cache_Lite通过故障转移到文件系统缓存插入memcached.我们必须修改WordPress来执行诸如发送智能,缓存友好的HTTP标头之类的操作,以禁用大量不必要的SQL和处理.
我修改WP以使用MySQL的仅内存NDB集群存储引擎运行,这意味着在许多查询中指定索引(但最终我们选择了复制集群).在修改它以使用单独的服务器运行以进行管理与公共访问时,我们锁定了公共端版本,因此它以极低的MySQL权限运行,只允许读取(第三个MySQL用户获得评论权限).
如果您有严重的垃圾评论问题(即10K /小时),那么您必须做一些除插件之外的事情.垃圾邮件将DOS你,因为WordPress刚刚初始化它的核心是在没有并发性的独立P4上的半秒钟,并且因为WP是代码毛球,所以如果不首先初始化核心就没有办法做任何事情.
"WP-Cron"是脑死亡,如果您有权访问实际的crontab来执行这些功能,则应该禁用它.不难做到.
简而言之,我可以继续列出您可能想要进行修改的原因.
在整个过程中,当然出于可维护性原因的目标是将这些修改保持在最低限度并尽可能清楚地记录它们,并且当它有意义时我们实现了许多插件.
作为开源,我认为随时可以修改和扩展WordPress之类的软件是很平常的事。
修改或不修改是权衡取舍的选择。可以将新功能封装为模块,这可能导致其功能集成度低于所需功能。但是,随着新版本的发布,完全集成的更改可能会阻碍轻松地更新软件。
确实需要某人非常熟悉该软件才能直接修改该软件,但这不一定是一个坏主意。
附带说明一下,我认为修改WordPress几乎是必要的,尤其是如果您希望它具有一个不错的体系结构或实际上是安全的(好吧,这是个麻烦,请起诉我)。