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

2008年9月15日17:32:31 安装详解 40 36,354

以前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就是你哦!

评论已关闭!

目前评论:40   其中:访客  37   博主  0   引用   3

    • kjkjkljkj kjkjkljkj 3

      这个方法赞!!非常赞!!等会就去试试

      • kjkjkljkj kjkjkljkj 3

        这样子不就可以用一个WP程序建立多个博客了,确实是很节约空间啊,赞!

        • loke loke 4

          强!

          • Toby Toby 2

            这个东西很强哦!真的很强!学习了~

            • ThinkAgain ThinkAgain 2

              Hack了wp-config.php,很有借鉴意义。呵呵。

              • rain rain 2

                正好需要

                • EaSy EaSy 5

                  很强很厉害!

                  • 辐射鱼 辐射鱼 6

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

                    • 辐射鱼 辐射鱼 6

                      to kj:嗯,理论上是多个
                      to rain:希望对你有帮助,常来看看,也翻翻以前的

                      • 老N 老N 6


                        这个真是好教程,我有需要时机会一定尝试!先标记着。

                        • 辐射鱼 辐射鱼 6

                          @老N 欢迎常来啊

                          • 大排 大排 1

                            很黄很暴力!很强悍

                            • Fishtimes Fishtimes 4

                              非常有意义
                              学习

                              • rain rain 2

                                我现在不支持多数据库,所以改成在下级目录安装前修改表头就行了

                                示范

                                http://ww.israin.info

                                http://deeepin.israin.info

                                • 辐射鱼 辐射鱼 6

                                  @大排 这个不黄啦
                                  @Fishtimes 确实有意义,理论上只要不同的表前缀就行

                                  • 亢龍有悔 亢龍有悔 1

                                    呵呵,确实很牛x.

                                    • dken dken 1

                                      呵呵,,借用到其它程序上了..哈哈..

                                      • 辐射鱼 辐射鱼 6

                                        @dken 对,就是要这种发散思维

                                        • Joe Joe 4

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

                                          • dken dken 1

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

                                            • Joe Joe 4

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

                                              • Joe Joe 4

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

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

                                                • dken dken 1

                                                  @Joe

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

                                                  • Sixianglu Sixianglu 0

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

                                                    国庆愉快!谢谢!

                                                    • kjkjkljkj kjkjkljkj 3

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

                                                      • jack jack 0

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

                                                        • qian qian 0

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

                                                          有什么好办法?

                                                          • ernsky ernsky 1

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

                                                            • dken dken 1

                                                              @ernsky

                                                              增加一个else if

                                                              • ifender ifender 2

                                                                这个牛

                                                                • 静水 静水 3

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

                                                                  • rich rich 0


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

                                                                    • Lyman Lyman 0

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

                                                                      • leesum leesum 0

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

                                                                        • 桔小溪 桔小溪 2

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

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

                                                                            • 酋 长 酋 长 9

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

                                                                                • 桔小溪 桔小溪 2

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

                                                                            • 来自外部的引用: 3

                                                                              • 使用一个wordpress程序建立多个不同的网站 :未完待续
                                                                              • Nooidea.com | 装傻充愣 » Blog Archive » iWeb ‘09-不是专家也可以
                                                                              • 使用一个Wordpress创建多个不同的网站(转载) | 伟景博客-膜技术|水处理|节能减排|循环经济|Wordpress|留学生活