如何避免与决定使用它们的db.php/$wpdb和其他插件发生冲突?

时间:2014-09-19 作者:Borek Bernard

我们的插件(VersionPress)需要跟踪数据库更改,以便能够对其进行版本控制。我们目前通过创建db.php 并覆盖$wpdb 但它有一个问题,如果任何其他插件决定重写db.php 会有冲突。

我的问题相当笼统:对我来说db.php 在WordPress中,创建一个子类是非常奇怪和不常见的扩展点-为什么?可能会有一个不使用挂钩或过滤器的原因。是因为一些查询是在加载插件之前运行的,并且有机会影响查询吗?或者其他原因?

如何解决这个问题?我们希望VersionPress与其他可能创建自己db的插件协作。php。是我们唯一的机会\'query\' 遗憾的是,过滤器只提供非结构化查询数据?

1 个回复
SO网友:Mark Kaplun

简单,挂在query 过滤并构造“非结构化”sql数据。解析SQL很烦人,但不会那么困难。

当然,有些查询是在加载插件之前运行的,因为在包含它们的文件之前,您确实需要获取活动插件和活动主题的列表。如果需要访问不同于mysql的数据库,或者忽略wp_config.php 文件,您需要执行覆盖$wpdb 在发送第一个查询之前。

结束

相关推荐

$wpdb->更新多行,就像普通SQL中的IN

我想知道是否可以使用$wpdb->update 更新多行的值,如IN 在“普通”SQL中。我想完成这样的例子;UPDATE [table] SET [column_1] = [updated_value] WHERE [column_2] IN ([comma_separated_ids]) 我一直在四处寻找这将如何工作,但我还没有找到另一个问题,问这个问题或任何类型的答案/博客帖子解释是否可以做到这一点。现在我使用的是一个查询,但如果使用一个简单的单行程序会更好。