用 WordPress 建站当初,每每想到要某一功能时首先想到的是有没有相关的插件,而不去思考可通过改哪里的代码来实现。因而造成插件的数量日渐膨胀,直接 40 多个插件同时绽放,还曾引以为豪。
最初的想法是尽量不去修改 WordPress 的代码,用第三方插件,待到以后升级 WordPress 本身时会很方便,不用担心被覆盖的危险。还有就是老觉得配置插件比改代码更易于操作。但是忽略了主题文件也是 WordPress 外围的元件,改改主题文件中的代码又何妨,而且更多时候也只需要改主题中的某个文件。
找第三方插件的结果是,数量多的话肯定要拖累 WordPress,因为不是用 Action 就是用 Filter 来拦截。到现在感觉慢了要整理插件的时候,发现有时候改个装个插件然后进行设置倒不如改一下代码来得快捷,甚至是 WordPress 本身有的功能还楞是加个插件做重复的事情。下面举几个我实际中的例子:
1. 默认时 WordPress 在修改文章的时候会生成很多的 Revision,结果就是噪音比主音还大。相关的插件有 Revision Control、或 No Revision 等,分别可设定最大的 Revision 数量和取消 Revision 的功能。没错,插件是可以解决问题的,但是我们应该很多时候用不上这一功能,只要在 wp-config.php 中加上一个定义 define('WP_POST_REVISIONS', false) 就行,省事又节约了性能。要知道 wp-config.php 在升级 WordPress 的时候也是保留文件的。
2. 曾经为改那个 Read More 的链接文字,我一直用那个叫做 More Link Modifier 插件,它也就提供一个选择来设置那个 "阅读全文" 几个字。现在卸掉了它,只需要在主题目录的 index.php 文件,把 the_content() 改为 the_content('阅读全文 >>'); 就可以了,真可谓是一身轻松。
3. 滥用插件让我们变得懒于思考,不愿多从问题自身去找问题的解决方案。曾为了排列 Page 的顺序,第一个念头还是找插件 My Page Order,素不知给每个 Page 设置一下 order 属性,Page 肯定不会多的。
4. 再有,文章置顶插件,这一需求是很实在的,比如特别向观众推介的文章让它一段时间内固定显示在最前面。我也是顺着思维就找一呀,找到几个相关的插件,像 WP-Sticky、Adhensive 和 Adsom,结果相中了 WP-Sticky。使用其间了,明明看到在文章的快速编辑里看到了 Make this post sticky 选项,还错以为是 WP-Sticky 干的。真是高估了它,这原本是 WordPress 本身就有的文章置顶功能,却让 WP-Sticky 障了眼。也就是无需任何插件,只要在文章的快速编辑里勾上 Make this post sticky 选项后,该文章就置顶了。
说到文章置顶,有个问题要提一下,无论是使用还是不用插件的方式,置顶的文章总会显示在 Sidebar 里最近发表文章列表的前头。这要看看插件里取最新文章的函数是怎么调用的。而且 WordPress 的内置置顶功能还能让你定义被置顶文章的标题显示样式。
当然不是说核心代码就是不可碰触的高压线,极少的时候改下 WordPress 核心代码也应该处处搞个插件好些。就是要时时刻刻记得改了些什么地方,像版本管理一样,以样升级 WordPress 后要重新应用一下。
当然有些插件还是必须的,与改主题中代码时复杂度或是可能触犯到核心代码而言的。如超级缓存用的 WP Super Cache,All in one SEO、文末加版信息的 Add Post URL、统计文章点击的 PostViews、分页导航用的 PageNav、标签用的 Simple Tags、语法加亮的 SyntaxHighlighter、生成 SiteMap 的啊还有显示随机文章的插件、访问统计的等等。
看来我的 WordPress 里的一些插件又得惨遭我的毒手了。
本文链接 https://yanbin.blog/plugin-or-modify-code/, 来自 隔叶黄莺 Yanbin Blog
[版权声明] 本文采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。