问题描述

我从来没有看到的东西是验证特定表单字段正确填写自定义帖子类型元框的最佳方式。

我正在寻求如何最好地验证可能创建的任何 metaboxes 的自定义字段的专家意见。我的兴趣是:

  • 确保字段验证发生在发布/更新发布之前

  • 利用不与其他 wordpress javascript 冲突的类/代码

  • 允许您根据需要定义特定字段,而其他字段可以是可选的

  • 根据可定制的规则验证字段,包括电子邮件格式等正则表达式

  • 控制任何错误/通知的视觉显示

提前致谢!

最佳解决方案

最简单的方法是通过 jQuery Validate plugin 添加 Javascript 验证。这是最基本的演练:

在您的 add_meta_box 调用附近,排列 jQuery Validate 插件以及简单脚本的 JS 文件:

add_action('admin_enqueue_scripts', 'add_my_js');
function add_my_js(){
  wp_enqueue_script('my_validate', 'path/to/jquery.validate.min.js', array('jquery'));
  wp_enqueue_script('my_script_js', 'path/to/my_script.js');
}

那么在 my_script.js 中包括以下内容:

jQuery().ready(function() {
    jQuery("#post").validate();
});

这将使后验表单上的验证。然后在您定义自定义字段的 add_meta_box 回调中,您可以为要验证的每个字段添加一个”required” 类,如下所示:

<input type="text" name="my_custom_text_field" class="required"/>

所有在”required” 的所有字段都将在保存/发布/更新后验证。所有其他验证选项 (规则,错误样式等) 都可以在 my_script.js 中的 document.ready 函数中设置; 检查所有选项的 jQuery 验证文档。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。