我正在寻找关于存储模块化主题的一系列设置的最佳方法的建议。
注意:
设置将不面向用户(不适用于customiserapi)add_option / get_option
它使用数据库get_theme_mod
/ set_theme_mod
.
我目前使用的是一个全局作用域数组,这并不理想(据我所知)。
还有其他想法/建议吗?
我正在寻找关于存储模块化主题的一系列设置的最佳方法的建议。
注意:
设置将不面向用户(不适用于customiserapi)add_option / get_option
它使用数据库get_theme_mod
/ set_theme_mod
.
我目前使用的是一个全局作用域数组,这并不理想(据我所知)。
还有其他想法/建议吗?
如果用户无法更改它们,则它们不是选项,而是常量。使用声明它们const
在maim主题文件中(可能是functions.php
但始终加载的任何其他文件都可以),并在任何地方使用它们,现在使用“选项”数组。
如果要在不编辑主题文件的情况下对其进行控制,可以使用条件define
相反(检查值是否尚未定义,如果尚未定义)。这样,您就可以通过在wp-config.php
每个站点的文件。
。。。但这个问题听起来是错误的。DB就在那里,所以只要使用它,控制选项的基本UI很容易找到。没有真正的理由在每次要激活/停用模块时都诉诸代码更改。
First Pick
我不会从一开始就忽略数据库选项,这将是我的第一个选择theme_mods
取决于主题。作为性能,wp选项是自动加载的,它们利用WordPress在core中的持久缓存系统(您可以在wp_cache_get). 它们与全局对象一样好。
Second Pick
如果这些设置几乎是静态的(如果很少更改),则可能是不将其存储为选项的原因,并且它们应该只定义应加载或不加载主题的哪些模块/部分。
在这种情况下,我会选择config.json
文件,应使用file_get_content.这样,您可以在框架中定义一个默认配置(类似config.example.json
), 并将其复制粘贴到您的网站上。
我有一个名为manager 具有manage_options 和read 功能,我想限制他不要访问设置菜单,你可以说删除manage_options 功能,但事实并非如此,因为我需要这个cap(我使用的是发布到options.php的设置API)。我可以使用remove_menu_page() 但我们仍然可以通过直接键入url进行访问。