objectivco / wordpress-simple-settings
WordPress插件或主题设置的极简框架。
Requires
- php: >=5.2.0
README
WordPress插件或主题设置的极简框架。
这是什么
这是一个用于管理WordPress插件或主题选项的超级简单的框架。无需复杂的字段区域注册或其他开销。只需添加一些设置,更新它们,获取它们。就这样。
它可以神奇地处理nonce、字段名称等!
它是如何工作的
WordPress Simple Settings是一个抽象类,您可以在自己的插件类、主题类或任何需要的地方扩展。
它接受一个由您设置的名称前缀,并构建一个存储在数据库中单个选项中的设置对象。
这部分应该是一个提示,告诉您使用此API应该存储什么类型的数据:小量数据!
就像内置的Options API(此框架使用的一样),您只想用它存储小块数据。不要尝试在这里存储您的客户数据库!
安装
最好的方法是使用composer: composer require objectivco/wordpress-simple-settings
您也可以将存储库克隆到您的lib或inc目录中,并要求wordpress-simple-settings.php。但composer更好。
您可以在我们的示例插件中快速了解如何实现:examples/awesome-plugin。
关键是,您将实例化您的插件类作为WP_SimpleSettings的扩展。然后,您将设置一个名为$prefix的类变量作为前缀。
如果您不设置$prefix,框架将尝试使用您的子类名称。但这仅在PHP 5.3+中有效。所以,实际上,还是设置一个前缀吧?
变更日志
0.7.2
- 如果没有旧值,请传递NULL作为旧值。
0.7.1
- WordPress编码标准
- 在save_settings()中不要为每个设置保存到数据库。推迟到最后。
- 添加操作{$this->prefix}_update_setting{$setting},在设置更新期间接收旧值和新值。
- 忽略.idea文件夹
0.3.0
- 添加$delimeter变量,允许从分号(默认)切换到其他分隔符。
0.2.2
- 添加delete_setting。
0.2.1
- 修复{$this->prefix}_settings_saved操作的位置,以防止不适当触发。
0.2
- 改进数组的存储和处理。
- 添加do_action("{$this->prefix}_settings_saved")钩子,以便在插件设置保存后添加您自己的操作。
0.1
- 初始版本。
用法
以下是您在插件中可以使用的的基本函数。
add_setting($option_name, $value)
这本质上是对update_setting的包装,在所询问的选项已经设置的情况下,不会做出任何更改。
您最常在激活钩子中使用此功能。
delete_setting($option_name)
删除设置。
get_setting($option_name, $type)
检索特定选项。默认返回字符串。如果您指定array作为$type,它将把值视为分隔字符串(默认为分号)并返回一个数组。
update_setting($option_name, $new_value)
更新特定选项。
get_field_name($option_name, $type)
获取HTML字段名称。如果您将$type设置为数组,字段值将被视为分隔字符串(默认为分号)并存储为数组。
the_nonce()
在您的管理员表单中的某个位置调用$YourPluginInstance->the_nonce()以生成用于验证/保存设置的nonce。
save_settings()
除非您想覆盖默认功能,否则没有必要调用此函数。此函数将在admin_init时自动调用并保存设置,如果设置了正确的nonce和$_REQUEST。
设置对象
在构建此框架时,我的目标之一是拥有一个易于访问的设置对象,可以直接使用,而无需使用获取器/设置器。这可以通过简单地使用$this->settings[$option_name]来实现。
显然,这应该在只读应用程序中使用。在此处设置值不会在数据库中更新它们。
反馈
我绝不声称拥有关于管理WordPress主题或插件选项的完美、最终答案。
这种极简主义方法的目的是,您可以简单地构建您的插件,而不是扭曲它以适应更严格的应用程序编程接口。
如果您有任何关于如何改进这里的内容的想法,请告诉我!