Creating multiple blogs

时间:2011-09-11 作者:onetrickpony

我正在尝试批量创建一定数量的博客:

  $blog_count = 5;
  $site = get_current_site();

  while($blog_count > 0){
    shuffle($words);

    $blog_title = implode(\' \', array_slice($words, 0, mt_rand(1, 3)));
    $blog_domain = $blog_path = sanitize_key($blog_title);

    if(domain_exists($site->domain, $site->path.$blog_path, $site->id)) continue;

    $blog_id = wpmu_create_blog($site->domain, $site->path.$blog_path, $blog_title, 0, \'\', $site->id);

    echo "Created - {$blog_id}";
    $blog_count--;

  }
我无法在所有博客上正确设置路径。在这种情况下,5个博客中只有2个工作正常。

  • $site-domain 是“localhost”$site->path.$blog_path 是“/wpmutest/thenameofblog/”
(这不是子域安装)

当我去编辑它们时,“同时更新siteurl和主页”选项在有问题的博客上未选中,我无法更新它(在我按save后不会更改)。似乎没有创建数据库表。

我是做错了什么,还是这是一个bug?

1 个回复
SO网友:onetrickpony

显然是一个全局变量is not properly updated. 我根据blackriver的回复找到了修复方法here, 虽然有点难看,但效果不错:

add_action(\'switch_blog\', \'fix_wpmu_create_blog\', 10, 2);
function fix_wpmu_create_blog($new_blog_id, $old_blog_id){
  global $wpdb, $wp_queries;

  if($wp_queries && defined(\'FIX_WPMU_CREATE_BLOG\')){
    $old_pattern = $wpdb->base_prefix.$old_blog_id.\'_\';
    $new_pattern = $wpdb->base_prefix.$new_blog_id.\'_\';
    $wp_queries = str_replace($old_pattern, $new_pattern, $wp_queries);
    //echo \'<pre>\';
    //print_r($wp_queries);
    //echo \'</pre>\';
  }
}
以及

define(\'FIX_WPMU_CREATE_BLOG\', true);
在使用此函数的代码中的某个地方。

如果有人有更好的解决方案,请发布它,以便我可以接受答案:)

结束

相关推荐

NGINX Multisite Rewrite rules

我对我的新NGINX 安装如果我像下面这样手动访问图像:incredible.devpreview.co/wp-content/blogs.dir/2/files/2011/05/stockvault-colorful-illustration108811.jpg它出现了,但WordPress正在这里寻找它:incredible.devpreview.co/files/2011/05/stockvault-colorful-illustration108811.jpg以下是我的NGINX配置文件中的内容: