HyperDB、多站点-在新站点创建时将站点的表放入特定数据库

时间:2017-05-03 作者:dodo254

我的任务是创建Wordpress Multisite,并让Wordpress Multisite在为该(新)站点创建的另一个数据库中为每个新站点创建表(假设不必创建每个站点的数据库,并且它们已经存在)。

我已经成功地安装了HyperDB并创建了WP Multisite,但是在数据库中创建站点的新表时,我仍然遇到了一些问题,这些表只针对新站点。

我管理要在主数据库中创建的表,即对于每个新站点,主数据库中都有特定的表,如wp\\U 1\\U posts、wp\\U 2\\U posts。。。不幸的是,这不是我们想要的结果。

我已经为这件事挣扎了很长时间了。有没有人对此有经验?

如果有人知道怎么做,我将不胜感激。

下面是一些代码。我不确定这有多大帮助,但以防万一:

 $wpdb->add_database( array(
         \'host\'     => DB_HOST,
         \'user\'     => DB_USER,
         \'password\' => DB_PASSWORD,
         \'name\'     => DB_NAME,
         \'write\'    => 1, 
 ) );

 $wpdb->add_database( array(
         \'host\'     => \'example.host.com\',
         \'user\'     => \'user\',
         \'password\' => \'P455\',
         \'name\'     => \'db_name\',
         \'write\'    => 0, 
         \'read\'     => 1, 
 ) );

1 个回复
SO网友:Martin

你正在使用的插件已经两年没有更新了。最好不要依赖这么旧的插件。您应该考虑编写一个sql脚本,根据MySQL文档创建一个数据库。只需通过php运行SQL命令。您可以在此处检查如何执行此操作:https://www.w3schools.com/PHP/php_mysql_create.asp

之后,如果您的数据库是Wordpress数据库,并且您坚持使用wpdb对象,那么您必须启动一个新的wpdb对象。像这样:

$custom_wpdb_object = new wpdb( $dbuser, $dbpassword, $dbname, $dbhost );
并按计划使用它。

相关推荐

Reducing Database Query Time

在这里寻找一些建议。有一位客户已经在WooCommerce上工作了大约一年半。我们为他们建了一个新网站。他们开始增加一条新的家具生产线。每个项目有700-800个产品变体组合。由于从生产线中添加了大约8个新产品,当您在管理中查看产品列表时,加载需要花费很长时间。如果您快速编辑一个产品,并说将其添加到第二个类别,然后单击“更新”,则完成查询平均需要10.2-10.8秒(根据查询监视器)。意识到有700-800个变体需要迭代,如果可以理解的话,可能需要更长的时间。我已经恢复到2017主题,禁用了除woocom