我应该在哪里为我的多站点WordPress插件存储全局数据


Where should I store global data for my multi-site WordPress plugin?

我为WordPress编写了一个插件,其中有一些用户可配置的设置,这些设置是使用WordPress建议的方法存储的。我知道它们保存在wp_options表中,但这是由WordPress选项API抽象出来的。

现在我试图添加一个可以在多站点安装的网络管理部分配置的设置的"全局覆盖"。我找到了合适的钩子来设计我的设置页面,但是我找不到任何关于在哪里保存数据的信息。

如果我使用正常的选项API保存它,那么设置将为每个站点单独保存。我正在寻找一个地方,以保存他们全局所有的网站,所以插件可以先看看,如果设置已被服务器管理员全局覆盖。

我可以编写一些代码直接写入其中一个站点(例如站点#1)的wp_options表,甚至创建我自己的表。我知道如何做所有这些事情,但如果有一个更喜欢的方式来编写多站点插件,我不想这样做。

谢谢你的建议

正如你所知,开发单个WordPress插件与多站点插件之间的主要区别在于数据写入的位置。根据这篇文章,由于插件通常完全控制一个数据库,并且在某些情况下插件本地页面文件,您必须确保只调用$wpdb全局对象,而不是硬编码的表引用。

例如,如果您需要在posts表上执行SQL命令,那么不要使用wp_posts作为表名$post_count = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM wp_posts"));

使用这个

$post_count = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM $wpdb->posts"));

请参阅文章了解更多信息。