御用自己做的WordPress插件是什么体验?终于可以随时同步更新功能代码

我自己的所有网站都是使用WordPress搭建的,现在更加专注于网站的内容,而非技术,不再对网站的功能、主题、代码、性能等话题乐此不疲,更多的是希望减少浪费时间,专注在提供内容上面,把时间都花在内容上,要知道,内容所需的时间,不比代码少。

但是不同的网站之间,由于代码不同,导致了很多重复性的工作,所以我希望让自己的代码更加统一一点,虽然不能做到完全统一。我的做法非常简单,就是开发了4个插件,提交到官方目录,每次有新的改动时,只需要提交新代码,然后到网站后台去更新这个插件。

哪些插件?

WP2PCS

这个是我所开发的插件里面使用的人最多的一个,我主要用它来备份数据,所有的网站都使用了它,每晚2点备份数据到百度网盘,从此不必担心网站突然挂掉以后数据找不回。

目前还有一个功能没有开发,就是实时备份上传的图片,因为图片也很重要,单单备份了数据没有用,如果要恢复网站,还需要备份图片。

代码一般就无所谓了,本地都会保留一份,比如主题,插件一般都是用别人的,自己开发的,也会保留一份。所以,最终需要备份的,就是数据和图片(上传的东西)。

PHP:5.3+
插件目录必须有可写权限
入手难度:不需要任何技术背景,但需要搞清楚和网盘之间的关系,为1。
WP:http://wordpress.org/plugins/wp2pcs
GitHub: http://github.com/tangshuang/WP2PCS

WP SEO TDK

这个插件我也用在了所有的网站,用来确定每一个网站的SEO标题、关键词、描述。前端时间我对它进行了升级,可以像模板一样对各个项目进行配置,使得SEO设置更加灵活。甚至还提供了hook,可以在主题中对SEO structure进行修改等。

入手难度:它需要修改主题,标题输出只能用wp_title('');为2。
WP: http://wordpress.org/plugins/wp-seo-tdk
GitHub: http://github.com/tangshuang/wp-seo

WP MINIFY STATIC

这个插件是用来实现js、css的合并输出的,输出方式有两种,一种是用??作为url识别符,用php动态输出,另一种是使用文件把结果保存起来,但每次修改的话就要清空缓存。

在部分网站上我使用了上面的功能,而且我基本上都是为了把所有文件合并为一个文件缓存起来,再用cdn去缓存这个脚本。

不过有些网站并没有使用上面的功能,但是我还是安装了它,因为它可以提供CDN域名替换功能,也就是把网页里面的图片,从当前域名替换为CDN访问域名。不过这个功能仅在前台有效,后台无效。

插件目录必须有可写权限
入手难度:需要修改主题,不能使用正常的<link><script>来链接脚本,为3.
WP: http://wordpress.org/plugins/wp-minify-static
GitHub: http://github.com/tangshuang/wp-minify

WP SHARE MODULES

这是我开发的终极插件,它并不提供特定的功能,但它提供功能模块,可以为你在主题开发时进行调用。对于普通用户而言,在后台开启一些功能也可以,比如开启头部清理功能,可以清除wp_head输出的一些没有什么用的内容。

入手难度:需要自己开发,为4.
WP: http://wordpress.org/plugins/wp-share-modules
GitHub: http://github.com/tangshuang/wp-share-modules

同步更新新开发的代码

其实写这篇文章,是为了总结一下自己最近的困扰。由于我自己有多个网站,都用WP搭建,但是放在不同的服务器上,代码是分散的。即使放在同一台服务器上,两个网站的代码也是分散的。

比如当我更新了某一个功能,就如文件打包功能吧,当我更新了这个功能后,必须将我的代码一个个的分别上传到所有网站上进行覆盖。

而当我把这些代码统一打包为一个插件,提交到WordPress官方目录之后,方便了不是一点点。把上面的打包功能放到插件里,每个网站都安装这个插件,那么更新了代码之后,只需要用SVN提交代码到WordPress官方服务器。下次登录网站后台的时候,更新一下这个插件就可以了,特别是在修复一些bug的时候,这种方法超级方便。

这也是我为什么说WP SHARE MODULES是我的终极插件。因为它可以实现模块化,在WordPress后台启用这个插件之后,所有的模块都是未启动状态,用户根据自己的需要启动自己想启动的模块。

其实,我在开发wp-share-modules的时候,甚至想过把它作为类似npm一样的模组功能,我们现在开发的WordPress插件必须提交到WordPress官方才可以使用,但是在github上有无数的插件,这些开发者不知道为什么,并没有提交自己的插件,可能主要是嫌官方审查太麻烦,要太久了。

我想做的,是开发者可以将自己的模块提交到github,而插件的使用者可以在share modules后台直接填写github地址,安装这个模块。而且可以在后台实现自动更新。这样可以非常好的与github结合,更新更快,得到最稳定最安全的代码。

2016-10-19