我正在为WordPress开发我的第一个插件,我正在掌握整个挂钩系统。我现在被困在一个(可能)小问题上,我可能会绕过这个问题,但我害怕出现一个“黑客”,而不是一个真正的解决方案。
我要做的是在我的选项页面上放置两个提交按钮:
保存草稿他们都必须做一些共同的事情(即保存表单的内容),但是他们应该对这些内容采取不同的操作。到目前为止,我使用以下代码成功地输出了两个按钮:
echo \'<form id="my_plugin_settings_form" method="post" action="options.php">\';
settings_fields(\'my_plugin_settings\');
do_settings_sections(\'my_plugin_settings\');
submit_button(__(\'Save\', \'MyPlugin\'), \'Save\');
submit_button(__(\'Draft\', \'MyPlugin\'), \'secondary\',\'Draft\');
echo \'</form>\';
我还实现了一个validate方法,它可以正确地接收发布的字段:public function validate_settings($settings) {
var_dump($settings); // Here I can see all posted fields
}
以上操作很好,所有数据都正确保存在WordPress选项表中。但是,我想“截取”正在保存的数据以对其进行操作。我想在validate_settings()
方法,但单击的按钮为not 包含在作为参数传递的设置中。我可以简单地分析$_POST
数组来获取它,但我怀疑这种方法有点像黑客,也许我应该在其他地方实现一个合适的钩子。
因此,我的问题是:我应该把代码放在哪里来处理从选项页面发布的数据?是否有我应该使用的特定挂钩?
提前感谢您的回答。