使用一个WordPress创建多个不同的网站
以前Wopus团队分别用Wordpress建立了Wopus中文平台、WopusIDC平台
WordPress主题站、WordPress插件基地等系列网站。这个方法虽然很简单很实用,但确实很傻瓜,一点也不牛B!其实,我们完全可以用一个Wordpress对应不同的数据库,建立这些网站群。牛B吧?那就接下去看到底是如何牛B的,哈哈!
首先,合并站点之前,请确保:
- 备份wp-content目录数据
- 各站永久链接格式必须一致
- 最好新建几个不同的数据库表(视你要建立的网站数量而定)
如果以上条件都满足,那你可以继续看下去:
假设我们现在有两个网站,一个是www.wopus.org,一个是themes.wopus.org,要把他们合并到同一个Wordpress中,那么,我们只需要在wp-config.php加上如下代码即可:
if($_SERVER[“HTTP_HOST”]==”www.wopus.org” || $_SERVER[“HTTP_HOST”]==”www.wopus.org”){
define(‘DB_NAME’, ‘www’);
define(‘DB_USER’, ‘www_usr’);
define(‘DB_PASSWORD’, ‘www_psw’);
define(‘DB_HOST’, ‘localhost’);
define(‘DB_CHARSET’, ‘utf8’);
define(‘DB_COLLATE’, ”);
}else if($_SERVER[“HTTP_HOST”]==”themes.wopus.org” || $_SERVER[“HTTP_HOST”]==”themes.wopus.org”){
define(‘DB_NAME’, ‘themes’);
define(‘DB_USER’, ‘themes_usr’);
define(‘DB_PASSWORD’, ‘themes_psw’);
define(‘DB_HOST’, ‘localhost’);
define(‘DB_CHARSET’, ‘utf8’);
define(‘DB_COLLATE’, ”);
}
这段代码来自cbm’s land的面向对象(OOP)的使用Wordpress系统 一拖N的用法
代码很简单,就是根据不同的$_SERVER[“HTTP_HOST”]来读取不同的数据库表的配置,再加上不同的主题风格、和插件,看起来就像不同的网站了,其实一个Wordpress做出来的。国内著名的博客服务商–Yo2,就是在此基础上建立起来的,而不是用的Wordpress mu。
牛B吧?!大家将首页样式改一改,说不一定下一个Yo2就是你哦!
这个方法赞!!非常赞!!等会就去试试
这样子不就可以用一个WP程序建立多个博客了,确实是很节约空间啊,赞!
强!
这个东西很强哦!真的很强!学习了~
Hack了wp-config.php,很有借鉴意义。呵呵。
正好需要
很强很厉害!
to ThinkAgain:相互学习,重在分享,Wordpress这个毛胚房还需要你这样的插件、主题作者进行精装修啊,期待你的佳作
to kj:嗯,理论上是多个
to rain:希望对你有帮助,常来看看,也翻翻以前的
这个真是好教程,我有需要时机会一定尝试!先标记着。
@老N 欢迎常来啊
很黄很暴力!很强悍
非常有意义
学习
我现在不支持多数据库,所以改成在下级目录安装前修改表头就行了
示范
http://ww.israin.info
http://deeepin.israin.info
@大排 这个不黄啦
@Fishtimes 确实有意义,理论上只要不同的表前缀就行
呵呵,确实很牛x.
呵呵,,借用到其它程序上了..哈哈..
@dken 对,就是要这种发散思维
有个小问题问一下,WP-CONFIG.PHP里这里:
$table_prefix = ‘wp_’;
没有定义好可以使用两个吗?如果我合并之前一个博客用了wp_1另一个用了wp_2如何处理?
@Joe
同一数据库下更简单。只须判断$table_prefix就可可能了。
define(‘DB_NAME’, ‘chrome’);
define(‘DB_USER’, ‘chrome’);
define(‘DB_PASSWORD’, ‘ggchrome.com’);
define(‘DB_HOST’, ‘localhost’);
define(‘DB_CHARSET’, ‘utf8’);
define(‘DB_COLLATE’, ”);
if($_SERVER[“HTTP_HOST”]==”www.cbmland.com” || $_SERVER[“HTTP_HOST”]==”cbmland.com”){
$table_prefix = ‘wp_1’;
}else if($_SERVER[“HTTP_HOST”]==”www.ggchrome.com” || $_SERVER[“HTTP_HOST”]==”ggchrome.com”){
$table_prefix = ‘wp_2’;
}
define (‘WPLANG’, ‘zh_CN’);
不错不错.如果是不同数据库按上面的也可以吗?
有大侠可以发一个已经写好的“不同数据库”并且“不同表前缀”的WP-CONFIG.PHP文件给我吗?自己写怕出错。
有了这个两个博客就不用升两次级了
@Joe
不同数据库,不同表前缀按下面地址的改一下就可以了。
http://www.cbmland.com/post/544/oop-use-wordpress-as-class.html
这个Wordpress技术应该很具有冲击性。
我也很有兴趣,也想尝试一下,不过有一点儿不太懂:
1)我已经安装了自己的Wordpress,在wp-config.php里面当然没有数据表的 前缀。
2)如果我想按照你本文的说明,另外再建立一个Wordpress,那么我在原来的wp-config.php文件里是否需要改动?也就是说-必-须-要添加数据表的前缀?如果必须的话,我原来的数据库不是就要乱了吗?所以,我就需要先把我原来的数据库弄干净之后再重新安装我的Wordpress了?
国庆愉快!谢谢!
其实很多程序都可以利用这种方法的,自己稍微思考下就可以获得很多惊喜
@dken @dken
问一个很菜的问题,在wp-config.php按照你上面的这个添加代码,之前是不是也需要在数据库里建立两个表,wp_1和wp_2?还是数据库会自建??
我也想这么做,但我有个顾虑:domain1的静态页面(wordpress以外的页面)或domain1/wp-content/uploads/file可以用domain2访问到。而我想做到domain1和domain2在内容上是完全独立的,有什么办法可以割断这种联系?
服务器环境是lamp,我曾想过domain1和domain2使用不同的docuemntroot,把wordpress安装在domain1,domain2除wp-config.php,.htaccess以外大部分文件用软连接建立,但是发现php中大量使用的__FILE__识别的是目标文件名,不是symbolic文件名。针对wordpress 2.6.2我可以修改wp-load.php使之满足我的要求(至少看上去是这样,但我无法保证wordpress在其他地方使用了__FILE__带来某些隐患。
有什么好办法?
@dken 如果是三个以上,应该怎么弄,麻烦指点!
@ernsky
增加一个else if
这个牛
我现在就去做测试。不行的话就明早去找酋长
恩
这个方法很好
让我见识不少
看来积累很重要,创意也很重要!
用switch( $_SERVER[‘HTTP_HOST’] )
{
case ‘www.host.com’:
define(‘DB_NAME’, ‘themes’);
define(‘DB_USER’, ‘themes_usr’);
define(‘DB_PASSWORD’, ‘themes_psw’);
define(‘DB_HOST’, ‘localhost’);
define(‘DB_CHARSET’, ‘utf8’);
define(‘DB_COLLATE’, ”);
break;
default :
define(‘DB_NAME’, ‘themes’);
define(‘DB_USER’, ‘themes_usr’);
define(‘DB_PASSWORD’, ‘themes_psw’);
define(‘DB_HOST’, ‘localhost’);
define(‘DB_CHARSET’, ‘utf8’);
define(‘DB_COLLATE’, ”);
break;
}
以前看到这招的介绍忘了备份,找了半天终于找到了,谢谢
有个疑问:这个教程和 面向对象(OOP)的使用Wordpress系统 一拖N的用法[原]
两篇教程都是说两个站点都安装了wordpress,然后加以合并
如果目前我的网站,www.juxiaoxi.com没有安装wordpress,而子站blog.juxiaoxi.com安装了wordpress,
想将主站与子站公用一个wordpress,直接修改PHP可行了
还是说,我需要将www.juxiaoxi.com先装wordpress再按这个教程的方法合并?
总觉得应该有方法的,可惜自己不懂。。。
其实在3.0之后,这种方法,就已经失效了。WordPress 3.0开始,多站点功能很强大,可以搜索一下我们网站的内容。
谢谢酋长提醒,好在没来得及动手这么改,刚好也在关注3.0开始的多站点功能呢,wopus的资源也看了些,这几天就专门抽个时间好好整