There is a pre-update filter, 仅在消毒过滤器之后应用。它被称为pre\\u update\\u option\\uOptionName,并将选项的新值和旧值作为参数。使用方法如下:
register_setting( $my_option_group , $my_option_name );
// 10 is the filter priority, 2 is the number of arguments
add_filter( \'pre_update_option_\' . $my_option_name , \'my_callback\', 10, 2 );
function my_callback( $newvalue, $oldvalue ) {
// $newvalue has already been sanitized, but not yet saved
// do whatever you like here
return \'filtered value\';
}
使用此选项的好处是意图更加明确,并且您不必手动获取旧的选项值(如果需要的话),因为它是为您传入的。
此筛选器特定于某个字段,因此,如果希望在保存选项时只运行一次,只需将其添加到一个字段即可。