Modular theme settings

时间:2018-01-03 作者:addedlovely

我正在寻找关于存储模块化主题的一系列设置的最佳方法的建议。

注意:

设置将不面向用户(不适用于customiserapi)add_option / get_option 它使用数据库get_theme_mod / set_theme_mod.

我目前使用的是一个全局作用域数组,这并不理想(据我所知)。

还有其他想法/建议吗?

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

如果用户无法更改它们,则它们不是选项,而是常量。使用声明它们const 在maim主题文件中(可能是functions.php 但始终加载的任何其他文件都可以),并在任何地方使用它们,现在使用“选项”数组。

如果要在不编辑主题文件的情况下对其进行控制,可以使用条件define 相反(检查值是否尚未定义,如果尚未定义)。这样,您就可以通过在wp-config.php 每个站点的文件。

。。。但这个问题听起来是错误的。DB就在那里,所以只要使用它,控制选项的基本UI很容易找到。没有真正的理由在每次要激活/停用模块时都诉诸代码更改。

SO网友:Andrei

First Pick

我不会从一开始就忽略数据库选项,这将是我的第一个选择theme_mods 取决于主题。

作为性能,wp选项是自动加载的,它们利用WordPress在core中的持久缓存系统(您可以在wp_cache_get). 它们与全局对象一样好。

Second Pick

如果这些设置几乎是静态的(如果很少更改),则可能是不将其存储为选项的原因,并且它们应该只定义应加载或不加载主题的哪些模块/部分。

在这种情况下,我会选择config.json 文件,应使用file_get_content.这样,您可以在框架中定义一个默认配置(类似config.example.json), 并将其复制粘贴到您的网站上。

结束

相关推荐

限制对Options-*.php页面的访问

我有一个名为manager 具有manage_options 和read 功能,我想限制他不要访问设置菜单,你可以说删除manage_options 功能,但事实并非如此,因为我需要这个cap(我使用的是发布到options.php的设置API)。我可以使用remove_menu_page() 但我们仍然可以通过直接键入url进行访问。