面向对象(OOP)的使用WordPress系统 一拖N的用法[原]
30 Jun 2008
今天和一位网友交流cacheAsFile的使用,从中得知他的网站空间为了实现三个各不相同的网站,已放置三个Wordpress系统来实现。
操作实现是在网站的根目录下放置一个Wordpress系统,再建立子目录来放置其他的Wordpress系统。可真难为了这位朋友。
这个其实是很简单而且很实在的方法,但是维护成本确是很高的,而且目录结构也不怎么不雅观。
这种模式看来有点像传统的面向过程编程,复用性太低,那么面向对象编程(OOP)怎么来处理好这个需求呢?
一般情况可以这样理解,Wordpress.org提供的Wordpress系统就像是一个Class,放置在网站上被访问时会根据不同的配置(数据库中保存的设置)生成出一个Wordpress运行实例,各不同的配置(设定的主题,插件)实例化出各不相同的基于Wordpress系统的网站。
反过来说,各不相同的Wordpress网站的原因在于不相同的配置。
如果在同一个服务器上可以根据不同的域名访问来指定不同的配置的话,这样即可实现不同的网站。
很高兴,php能做到这很基本一点判断。答案是肯定的。
很巧,在我的本地机器上,配置有自己的2个站,一个就是cbmland.com,另外一个是iFlex.com.cn,现在都是基于Wordpress系统的,在我的wp-config.php里面有我加了这样一段:
if($_SERVER["HTTP_HOST"]=="www.cbmland.com" || $_SERVER["HTTP_HOST"]=="cbmland.com"){ define('DB_NAME', 'cbmland'); define('DB_USER', 'cbmland'); define('DB_PASSWORD', 'http://cbmland.com'); define('DB_HOST', 'localhost'); define('DB_CHARSET', 'utf8'); define('DB_COLLATE', ''); $table_prefix = 'cbm_'; define ('WPLANG', 'zh_CN'); }else if($_SERVER["HTTP_HOST"]=="www.iflex.com.cn" || $_SERVER["HTTP_HOST"]=="iflex.com.cn"){ define('DB_NAME', 'cbmland'); define('DB_USER', 'cbmland'); define('DB_PASSWORD', 'http://iFlex.com.cn'); define('DB_HOST', 'localhost'); define('DB_CHARSET', 'utf8'); define('DB_COLLATE', ''); $table_prefix = 'ifx_'; // define ('WPLANG', 'zh_CN'); }
很明显,这个配置文件会根据不同的$_SERVER["HTTP_HOST"]来给出不同的数据库表的配置,一个数据表的前缀是 cbm_ 而另外一个是ifx,就算在同一个数据库里面也不会冲突。各自有了独立的数据库配置,在同一个优化好的Wordpress系统下能互不干扰的运行起来。再加上不同的主题风格、和插件,各自选择性的使用。
怎么样?这样就可以基于一份Wordpress系统拷贝,理论上可以无限的运行多个不同风格的Wordpress实例了。
怎么样?整一整,送个给女友?送个给老婆?送个给爸妈?嘿嘿!别以为不要钱,可要悠着点~邻居们都看着呐~
小提示:虚拟主机需要先绑定域名才能实现。
87 Responses for "面向对象(OOP)的使用WordPress系统 一拖N的用法[原]"
-
不错,学到些东西…我和你那朋友正在用同一方法,汗…
-
测试成功,谢谢分享
-
不过,能够建不同的数据库还是新建数据库比较好,不同的表前缀启用某些插件还得修改源代码,omg
-
每次来这里,总是有好东西。。。
-
我发了评论,就马上收到Gmail的通知,所以再测试下,貌似是啥插件哟!
-
厉害厉害,小子佩服。。。玩wp到这程度。。
-
妙…
这也是动态语言的优势及灵活之处 -
不知道相比较WP MU
更有优势吗? -
很好用,WPMU太复杂了,不错的办法!
-
超哥,这个办法很好,看了后我在DZ论坛模仿了一下,没有成功,不知道要怎么弄了.
-
谢谢分享,很好的方法!!!
-
太有用了,谢谢!
-
高人!订阅了
-
来这里看看,把Wopus中文平台转载的也贴过来了,评论的价值更大,希望博主能看看。。

2008-06-30 23:06