我爱水煮鱼 » WordPress » 一个 WordPress 安装,多个博客

一个 WordPress 安装,多个博客

你是否有多个博客,每个博客都是使用多个 WordPress 博客?那么你是否厌烦了重复多次的升级,重复多次的安装插件?如果是的,你是否尝试过一个 WordPress 安装,就能给多个博客使用呢?下面我就能讲讲我如何实现一个 WordPress 安装实现多个博客共同使用。

第一步,肯定是把所有的域名都指定到相同的 WordPress 安装目录下。这样才能使得所有博客使用同一个 WordPress 安装。

第二步要分两种情况:

第一种是使用不同的数据库。只需要在 wp-config.php 文件的开头加入以下代码:

$hostname = $_SERVER['HTTP_HOST'];
 
switch ($hostname) {
case "fairyfish.com":
    $db = "db1";
    break;
case "denis.fairyfish.com":
    $db = "db2";
    break;
}
 
// ** MySQL settings ** //
define('DB_NAME', $db);    // The name of the database

代码很简单就是根据不同的域名,给 DB_NAME 不同的数据库名的值。这里是假定你使用相同的数据库用户名,如果你的数据库用户名,也可以在每个 case 语句中指定。

第二种情况是使用相同的数据库,这个时候我们可以使用不同 table_prefix 来搞定。方法基本和上面相同。我也不再重复代码。对于这种情况,已经有一款插件他能帮助你完成所有的了工作,WP-Hive,这款插件除了能够给你不同的博客指定一个不同的 table_prefix 之外,还能够通过 rewriter 实现每个博客都能有自己的 favicon,sitemap.xml 和 robots.txt。

最后让所有的博客使用相同的用户。这个功能只能适合 WordPress 2.6 之后的版本。实现方法是在 wp-config.php 文件中指定 CUSTOM_USER_TABLECUSTOM_USER_META_TABLE 这两个值为常量,使得所有的博客都是用同一个 USERUSERMETA 表,从而达到所有博客拥有相同的用户。

标签:

分享到:

请选择你看完该文章的感受:

不错 超赞 无聊 扯谈 不解 路过
  1. 沙发, 好介绍!
    但这样前提是要有多个数据库, 想想能不能在一个数据库中实现… (就是数据库的表的前缀不一样.)

  2. 当我看到第一步时候,我就知道我没戏了

    红色主机目录绑定域名,仅限一个域名指入 :shock:

    不过好没精力维护多个博客,一个都好累……

  3. 本人博客甚多,算起来应该会有14到16个,哈哈,全是WP的,不过俺先不管这了,你得先参加俺滴活动再说,过几天试试这个方法去:

    哈哈,看了很多位牛牛们的WordCamp评论以及感受,我见到最多的就是每一个博主都在说另一些博主长得很“猥琐”,可是却不知道到底哪个是哪个了,而俺滴好奇心很浓,所以,俺很想看看每一位“猥琐”滴博主到底是怎么个“猥琐”活,所以,组织这一次活动,希望大家都能参与参与,你是牛人,别小看我,你不是牛人,别高举我,我就只是想看看你的“猥琐”样儿而已。

    这个活动为了是让我们这些没有参加的也都能互相认识认识参加了的以及其它没有参加的,所以,大家赶紧上自己的单人照哪,我这张是在西塞山拍的。

    活动都喜欢点名,因为俺滴博客没啥人看,所以,这里就不点了,我去你们那儿一个一个点。活动地址,请愿意参加的(我很想强行,可是没这个能力)朋友把照片发布地址在这里告诉俺一下下,OK???

    http://www.pantao.name/post/2008/09/handsome-boys-and-beautiful-girls-are-using-wordpress.html

  4. 可以实现不同的主题和插件,不过”wp_hive还能够通过 rewriter 实现每个博客都能有自己的 favicon,sitemap.xml 和 robots.txt。”这一点有谁成功的吗,我这里无法实现该效果

  5. 老大,你这个比Hive好用,可以分开数据库的说。
    单我用的时候有问题,请再指点一下:

    ——
    改后无论访问那个都说链接数据库失败。
    上面两个db,都用的同一个user,和密码。老大帮忙看看那里出错了,谢!

    • ?,代码都哪里去了?
      <?php
      //**Vincent differ db**//
      $hostname = $_SERVER['HTTP_HOST'];

      switch ($hostname) {
      case “biz-plug.com”:
      $db = “biz_bizplug”;
      break;
      case “zz.biz-plug.com”:
      $db = “biz_zz”;
      break;
      }

      // ** MySQL settings ** //
      define(‘DB_NAME’, ‘$db’); // The name of the database
      define(‘DB_USER’, ‘user1′); // Your MySQL username
      define(‘DB_PASSWORD’, ‘user1pass’); // …and password