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

2008-09-15 17:17 | 来源: 原创 | 作者: 辐射鱼 | 评论: 40条评论

主题不会用?插件不会设置?博客使用出问题?就上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"]=="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就是你哦!

标签: ,

编辑: 辐射鱼

  1. Joe 说:

    不错不错.如果是不同数据库按上面的也可以吗?

  2. Joe 说:

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

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

  3. dken 说:

    @Joe

    不同数据库,不同表前缀按下面地址的改一下就可以了。
    http://www.cbmland.com/post/544/oop-use-wordpress-as-class.html

  4. Sixianglu 说:

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

    国庆愉快!谢谢!

  5. kjkjkljkj 说:

    其实很多程序都可以利用这种方法的,自己稍微思考下就可以获得很多惊喜

  6. jack 说:

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

  7. qian 说:

    我也想这么做,但我有个顾虑: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. ernsky 说:

    @dken 如果是三个以上,应该怎么弄,麻烦指点!

  9. dken 说:

    @ernsky

    增加一个else if

  10. ifender 说:

    这个牛

  11. 静水 说:

    我现在就去做测试。不行的话就明早去找酋长

  12. rich 说:


    这个方法很好
    让我见识不少
    看来积累很重要,创意也很重要!

  13. Lyman 说:

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

  14. leesum 说:

    以前看到这招的介绍忘了备份,找了半天终于找到了,谢谢

  15. 桔小溪 说:

    有个疑问:这个教程和 面向对象(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的资源也看了些,这几天就专门抽个时间好好整

评论分页 1 2

评论:

留言没头像?教你设置头像!