获取传递给Sanitize_Callback的输入部分

时间:2014-05-16 作者:Felix Eve

在查看$input 传递给中定义的sanitize\\u回调函数的数组register_setting()?

我认为一种选择是将节作为字段名的一部分包含,然后可以提取它。E、 g。name="section^field" 然后在sanitize\\u回调中:

foreach($input as $name => $val) {
    $parts = explode(\'^\', $name);
    $section = $parts[0];
    $field = $parts[1];
    // do more stuff here
}
但这感觉有点不舒服。有更好的方法吗?

1 个回复
最合适的回答,由SO网友:Rarst 整理而成

不幸的是,如果你查看来源,唯一发生的事情是:

add_filter( "sanitize_option_{$option_name}", $sanitize_callback );
没有机会传递或检索任何额外信息。

在更大的范围内,我会说,如果您需要特定于节的清理,那么请使用特定于节的回调。即使相当多的部分与基于类的代码共享,也应该很容易整洁地组织起来。

结束

相关推荐