使用一个WordPress创建多个不同的网站

以前Wopus团队分别用Wordpress建立了Wopus中文平台WopusIDC平台

WordPress主题站WordPress插件基地等系列网站。这个方法虽然很简单很实用,但确实很傻瓜,一点也不牛B!其实,我们完全可以用一个Wordpress对应不同的数据库,建立这些网站群。牛B吧?那就接下去看到底是如何牛B的,哈哈!
首先,合并站点之前,请确保:

  1. 备份wp-content目录数据
  2. 各站永久链接格式必须一致
  3. 最好新建几个不同的数据库表(视你要建立的网站数量而定)

如果以上条件都满足,那你可以继续看下去:
假设我们现在有两个网站,一个是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就是你哦!

类似文章

40条评论

  1. to ThinkAgain:相互学习,重在分享,Wordpress这个毛胚房还需要你这样的插件、主题作者进行精装修啊,期待你的佳作

  2. 有个小问题问一下,WP-CONFIG.PHP里这里:
    $table_prefix = ‘wp_’;
    没有定义好可以使用两个吗?如果我合并之前一个博客用了wp_1另一个用了wp_2如何处理?

  3. @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’);

  4. 有大侠可以发一个已经写好的“不同数据库”并且“不同表前缀”的WP-CONFIG.PHP文件给我吗?自己写怕出错。

    有了这个两个博客就不用升两次级了

  5. 这个Wordpress技术应该很具有冲击性。
    我也很有兴趣,也想尝试一下,不过有一点儿不太懂:
    1)我已经安装了自己的Wordpress,在wp-config.php里面当然没有数据表的 前缀。
    2)如果我想按照你本文的说明,另外再建立一个Wordpress,那么我在原来的wp-config.php文件里是否需要改动?也就是说-必-须-要添加数据表的前缀?如果必须的话,我原来的数据库不是就要乱了吗?所以,我就需要先把我原来的数据库弄干净之后再重新安装我的Wordpress了?

    国庆愉快!谢谢!

  6. @dken @dken
    问一个很菜的问题,在wp-config.php按照你上面的这个添加代码,之前是不是也需要在数据库里建立两个表,wp_1和wp_2?还是数据库会自建??

  7. 我也想这么做,但我有个顾虑: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__带来某些隐患。

    有什么好办法?

  8. 用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;
    }

  9. 有个疑问:这个教程和 面向对象(OOP)的使用Wordpress系统 一拖N的用法[原]
    两篇教程都是说两个站点都安装了wordpress,然后加以合并
    如果目前我的网站,www.juxiaoxi.com没有安装wordpress,而子站blog.juxiaoxi.com安装了wordpress,
    想将主站与子站公用一个wordpress,直接修改PHP可行了
    还是说,我需要将www.juxiaoxi.com先装wordpress再按这个教程的方法合并?

    总觉得应该有方法的,可惜自己不懂。。。

    1. 其实在3.0之后,这种方法,就已经失效了。WordPress 3.0开始,多站点功能很强大,可以搜索一下我们网站的内容。

      1. 谢谢酋长提醒,好在没来得及动手这么改,刚好也在关注3.0开始的多站点功能呢,wopus的资源也看了些,这几天就专门抽个时间好好整

已关闭评论。