我正在创建一个表单插件来处理可被开发人员使用动作/过滤器挂接到的表单。
我的插件需要能够使用不同的过滤器集来处理不同的表单,我看到了两种方法。
方法1
每种形式的特定挂钩的火。
因此,这样的代码可以在我的插件中称为表格:
$formId = 'contact';
$errors = apply_filters('forms_validate_' . $formId, $errors, $data);
可以这样使用:
add_filter('forms_validate_contact', function($errors, $data){
if(empty($data['name'])){
$errors['name'] = 'Name is required';
}
return $errors;
} 10, 2)
方法2
将参数传递给调用函数。
因此,这样的代码可以在我的插件中称为表格:
$formId = 'contact';
$errors = apply_filters('forms_validate', $formId, $errors, $data);
可以这样使用:
add_filter('forms_validate', function($formId, $error, $data){
switch($formId){
case 'contact':
if(empty($data['name'])){
$errors['name'] = 'Name is required';
}
break;
}
return $errors;
}, 10, 3)
WordPress核心中是否有解决此类问题的示例?
有没有处理这种情况的首选方法?