同时执行多个数据库的循环

时间:2013-02-18 作者:Subharanjan

我有一个网站设置,由超过3-4个WordPress设置组成,作为main的子目录。例如:

Site
|
---------- Site/Site1
|
---------- Site/Site2
|
---------- Site/Site3
每个都有单独的代码库,各自有单独的DB。数据库服务器是一个,主机目录也是一个。基本上,我们可以说这些是与主站点的子目录相同设置的镜像。

现在,我想知道:我如何在父站点的主页中运行循环,该循环将获取并包含来自“Site1”、“Site2”、“Site3”的帖子?

注:

--我无法进行多站点设置,因为代码库是现有的并且很复杂。

--每个数据库中的表都有相同的前缀。

--为了更好地了解设置情况,我在这里附上了一张图片。Setup with DB

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

以错误实践的名义,我建议您立即使用原始SQL查询和同一页面中的远程数据库排除这些错误。这将是缓慢的、不安全的,而且维护起来很麻烦。

您已经陷入了一种困境,hyperDB+multisite的组合不是一种选择,这表明您在代码中面临着严重的体系结构挑战。排除代码的重构和规范化不是一种选择,因为即使您得到了问题的适当答案,它也会still 有必要进一步改进,否则您将在支持和维护成本上花费比修复问题更多的时间。

但话说回来,你问了一个问题。以下是潜在的解决方案。

请记住,这些标准将大大提高成本并降低可扩展性:

坚持在同一个循环中有多个站点的多个帖子在主站点上即时发布,下面是一些尝试方法:

使用RSS通过WP Cron获取帖子。为这些帖子生成html并在瞬间保存。过期后再取回帖子。在前端显示瞬态的内容

  • 使用聚合插件获取帖子,然后在主站点上发布。单击帖子时,请使用wp\\u redirect重定向到子网站上的原始帖子
  • 我预见到的设置问题:

    您正在使用HyperDB,但您的所有站点都是单独安装的,当您开始使用重写规则时,根文件夹中的站点可能会干扰子文件夹中的站点,这可能不是一个好主意,因为站点在内部是一个保留关键字。这需要测试

    结束

    相关推荐

    使用新的wpdb使用wp_Query搜索另一个数据库

    我目前有一个简单的wp_query 在我的wordpress网站上搜索工作。我现在希望相同的搜索在它自己的数据库中查找结果,并在同一服务器上查找另一个结果。我发现我可以new wpdb()然后$mydb->get_results() 来获取帖子。我设法获得了其中一篇文章的标题,但现在我想把它整合到我的wp_query. 这可能吗?下面是代码的细分:$args = array( \'post_type\' => \'post\', \'show_posts\' => \'