我从未见过的内容是验证自定义post类型元框的特定表单字段是否正确填写的最佳方法。
我希望获得专家意见,了解如何最好地验证可能创建的任何元数据库的自定义字段。我的兴趣是:
确保在发布/更新帖子之前进行字段验证,使用与其他wordpress javascript不冲突的类/代码,您可以根据需要定义特定字段,而其他字段可以是可选的,根据自定义规则验证字段,包括电子邮件格式等的regex控制任何错误/通知提前感谢!
我从未见过的内容是验证自定义post类型元框的特定表单字段是否正确填写的最佳方法。
我希望获得专家意见,了解如何最好地验证可能创建的任何元数据库的自定义字段。我的兴趣是:
确保在发布/更新帖子之前进行字段验证,使用与其他wordpress javascript不冲突的类/代码,您可以根据需要定义特定字段,而其他字段可以是可选的,根据自定义规则验证字段,包括电子邮件格式等的regex控制任何错误/通知提前感谢!
最简单的方法是通过jQuery Validate plugin. 以下是最基本的演练:
在add\\u meta\\u box调用附近,将jQuery验证插件以及简单脚本的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\\u脚本中。js包括以下内容:jQuery().ready(function() {
jQuery("#post").validate();
});
这将启用对post表单的验证。然后在定义自定义字段的add\\u meta\\u回调框中,为要验证的每个字段添加一个“required”类,如下所示:<input type="text" name="my_custom_text_field" class="required"/>
保存/发布/更新帖子时,将验证其类中带有“required”的所有字段。可以在文档中设置所有其他验证选项(规则、错误样式等)。my\\u脚本中的ready函数。js;检查jQuery验证文档中的所有选项。添加jQuery验证的完整基本代码:
验证脚本排队。我想jQuery已经被授权了。
add_action(\'admin_enqueue_scripts\',function($id){
$validation\',$validation_js_url = #your validation.js source;
wp_register_script( \'validation\',$validation_js_url,array(),\'\',true );
wp_enqueue_script( \'validation\' );
});
在js文件或脚本标记中:jQuery(document).ready(function($){
var form = $("form[name=\'post\']");
$(form).find("input[type=\'submit\']").click(function(e){
e.preventDefault();
$(form).validate();
if($(form).valid())
{
$("#ajax-loading").show();
$(form).submit();
}else{
$("#publish").removeClass().addClass("button-primary");
$("#ajax-loading").hide();
}
});
});
完成:)我使用了这段代码,非常有用,只是做了一些修改:
$(form).find("input[type=\'submit\']").click(function(e){
收件人:$(form).find("#publish").click(function(e){
\'因为如果主窗体中有另一个窗体,则会启动脚本。以及:
$(form).submit();
收件人:$(this).submit();
\'因为第一行只将文章另存为草稿,您不能再发布它了。我发现这种方法可以解决使用PHP代码验证metabox字段的问题
希望这对您有所帮助(在类似的情况下对我有效)如果希望能够验证服务器端,最简单的选项是使用Advanced Custom Fields 定义自定义字段布局,然后Validated Field 用于在WordPress Admin中设置每个字段的验证的加载项。
在我的插件中,我想测试jQuery或Prototype(或两者)是否将由另一个插件加载。所以,有wp_enqueue_script(\'jquery\') 或wp_enqueue_script(\'prototype\') 已调用。我在文件中有适合我的插件的代码plugin.prototype.js 和plugin.jquery.js 如果原型已排队,我的插件将使用plugin.prototype.js. 这样我就避免了在站点中加载不必要的内容。如果两者都没有加载,我将排队,以较小者为准。如何测试以查看已