在插件中对MultiSite使用Add_Option而不是Add_Blog_Option有什么错

时间:2012-10-09 作者:Damien

我正在开发一个新插件,但这是我第一次保存它,它将把一个选项保存到数据库中。

目前我正在使用add_option 我假设,
-激活会失败,或者-将错误的值保存到wp_blogID_options表中

因为我没有使用add_blog_option. 所有的posts / 我读过的文献(Wrox、Apress等)说我需要习惯add_blog_option.

但我所有的测试(和检查SQL表)都证明我错了。所以在制作插件(可以是单点安装或多站点安装)时,使用add\\u选项而不是add\\u blog\\u选项有什么错?

对我来说。。。看来add_option (甚至get_option) 一切正常。我猜设置API有一些保护包装。

然而这意味着使用add_blog_option (或get\\u blog\\u选项)仅适用于“纯粹主义者”。

2 个回复
最合适的回答,由SO网友:Damien 整理而成

我要“了解”的是,多站点设置的插件激活有3种状态。

对于安装新插件的站点管理员,请考虑这一点:

插件是网络激活的-但它需要管理员来完成安装(称之为无状态的)

  • 插件激活,每个博客没有“独特功能”,也不需要管理员用户来完成安装(称之为激活的)
  • 插件激活,每个博客都有独特的功能,它确实需要管理员用户来完成安装(称为挂起)
  • 场景1:您可以安全地在插件激活(或网络激活)上使用“add\\u选项”,因为插件是无状态的。

    场景2:您必须使用“add\\u blog\\u option”并循环浏览每个博客-如果您进行网络激活,插件将处于活动状态。

    场景3:您必须使用“add\\u blog\\u option”,理想情况下,您不允许网络激活,因为插件处于挂起状态。

    在我的例子中,我的插件在博客所有者创建一个带有短代码的页面之前什么都不做。

    SO网友:Milo

    add_blog_option 最终调用add_option 自身添加选项switching the context 提供的博客ID。区别在于add_option 仅在当前博客的上下文中有效,其中add_blog_option 用于指定可能与当前上下文不同的博客ID。

    结束

    相关推荐

    BackPress-我需要加载哪些库才能与MultiSite一起工作?

    我已经成功安装并运行了这些基于BackPress的项目。支持按:https://supportpress.svn.wordpress.org/trunk/ </地应力:http://geopress.my/我试图了解如何构建一些需要多站点功能和子域选项的自定义项目。有人知道怎么做吗?我必须加载哪些库?非常感谢!