小编use*_*169的帖子

所有 WordPress 选项都是单个选项(序列化多维数组)还是多个选项?

我了解 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. 将所有插件选项保存为单个选项(序列化多维数组),例如。name='plugin_options[节][选项]'
  2. 将每个选项选项卡和选项页面拆分为自己的选项条目,例如:section[option][etc]
  3. 只需为所有插件选项添加前缀,然后将其作为单独的数据库条目,例如。插件名称_选项_1、插件名称_选项_2

我喜欢“单一插件选项”方法,但现在我很困惑,如果数组真的很大,那么从数据库获取/更新 1 个大数组是否真的是最好的方法 - 就像在一个非常大的数组中一样大而先进的插件。

我认为 3 的问题在于,使用 1 时,您只需要在一个 db 调用中获取所有选项,而在 3 中(您将每个选项保存为自身的数据库条目),您将必须查询db 用于每个特定和单独的选项。

但哪个更好:1 个针对所有选项,1 个针对每个部分,1 个针对每个单独选项(我想我的问题最终可以缩小到这个范围:D)。可序列化的“单选项”插件选项多维数组实际上会变得太大吗?是否应该分开?

期待听到您对此的意见。干杯。:-)

php arrays wordpress plugins caching

5
推荐指数
1
解决办法
1705
查看次数

标签 统计

arrays ×1

caching ×1

php ×1

plugins ×1

wordpress ×1