所有选项都是在pageload中加载的,因为它们不仅包括插件/主题选项,还包括WP原生内容,如菜单和小部件。根据是否需要来区分要(不)加载哪些需要进行相当多的计算,因此您提到的性能问题不存在。
现在谈谈可扩展性。让我们看看WordPress action sequence. 你看到的第一个钩子是plugins_loaded
. 任何合适的插件只会在稍后使用init
钩因此,为了扩展性,您可以plugins_loaded
在调用之前确保过滤器已就位get_option
.
在插件在加载时开始执行的罕见情况下,您需要先加载扩展插件。正如你所说,你可以写must use plugin 为了这个。或者,您可以编辑选项表,以确保您的插件是队列中的第一个(是的,插件列表也是一个选项)。
最后,请回答您的问题:这是否可取?事实上get_option
功能当然表明了这一点。然而,如果您是一名插件开发人员,您是否希望其他人在用户不注意的情况下干扰您的选项?我想说的是,如果插件开发人员明确没有使用挂接插件选项的最佳实践,也许他只是不想让任何人弄乱这些选项,你应该尊重这一点。