SO网友:Frank P. Walentynowicz
不,这不是一个bug。这就是core处理它的方式。如果你调查/wp-includes/comment-template.php
, 你会注意到<form>
元素,isnovalidate
添加属性时current_theme_supports( \'html5\', \'comment-form\' )
是真的。但在注释表单中还有其他html元素,它们受主题选择的html5支持的影响。例如:电子邮件的输入字段(type="email"
- html5,type="text"
- xhtml),以及url(type="url"
- html5,type="text"
- xhtml)。
我不建议删除对html5的主题支持。WordPress现在用<!DOCTYPE html>
, 也就是说,HTML5。如果我们删除了支持,我们的文档将无法验证为正确的XTML5。
那么,如何应对这种冒犯novalidate
属性简单的jQuery脚本将修复它。
创建文件removenovalidate.js
并在其中输入以下代码:
jQuery( document ).ready(function($) {
$(\'#commentform\').removeAttr(\'novalidate\');
});
将此文件保存到主题文件夹中。将下面的代码添加到主题
functions.php
:
function fpw_enqueue_scripts() {
if ( is_single() ) {
wp_register_script( \'fpw_remove_novalidate\', get_stylesheet_directory_uri() . \'/removenovalidate.js\', array( \'jquery\' ), false, true );
wp_enqueue_script( \'fpw_remove_novalidate\' );
}
}
add_action(\'wp_enqueue_scripts\', \'fpw_enqueue_scripts\', 10 );
全部完成。您的评论表单将立即生效。