我了解 WordPress,但现在我正在开发一个相当大且高级的 WordPress 插件。
出于这个原因,我对我的数据结构投入了很多思考。
当我还是一个初学者时,我总是习惯像这样保存它(get_option(prefix_option_name))。然后我开始使用多维数组,为每个设置部分注册 1 个,现在我通常将所有插件选项保存在 1 个大的多维数组中,如下所示:plugin_options[section][option][evt.more subs here][etc]
这确实工作得很好,而且我确实喜欢这样一个事实:我可以在 init-hook 中一次性拉出所有选项($plugin_options = get_option('plugin_options)),这样我就可以在插件中“本地”使用 $options , 然而...
考虑到 WordPress 已经利用瞬态来缓存(WP Cache API) get_option 调用,哪个对性能更好?尽管我的插件有很多选项,但我猜你永远无法达到长文本类型的限制(4GB 数据或其他东西),即使我将它们全部打包在一个可序列化的多维数组中?但我想从性能的角度来看最好的事情,所以简而言之,这又是我的问题:
什么是最好的(对于一个相当大和复杂的 WordPress 插件)?
我喜欢“单一插件选项”方法,但现在我很困惑,如果数组真的很大,那么从数据库获取/更新 1 个大数组是否真的是最好的方法 - 就像在一个非常大的数组中一样大而先进的插件。
我认为 3 的问题在于,使用 1 时,您只需要在一个 db 调用中获取所有选项,而在 3 中(您将每个选项保存为自身的数据库条目),您将必须查询db 用于每个特定和单独的选项。
但哪个更好:1 个针对所有选项,1 个针对每个部分,1 个针对每个单独选项(我想我的问题最终可以缩小到这个范围:D)。可序列化的“单选项”插件选项多维数组实际上会变得太大吗?是否应该分开?
期待听到您对此的意见。干杯。:-)