我从wordpress网站上删除了大多数类型属性,但仍然可以在联系表7标签上看到它,如何删除它们?
我在Google上进行搜索,但未找到解决方案。请帮忙!
注意:我正在验证validator.w3.org上的html,它会发出警告,请参阅下文。
Warning: The type attribute is unnecessary for JavaScript resources.
答案 0 :(得分:3)
这是使用WordPress过滤器type="text/javascript"
从所有JavaScript文件中删除script_loader_tag
的方式。
add_filter('script_loader_tag', 'your_slug_remove_type_attr', 10, 2);
function your_slug_remove_type_attr($tag, $handle) {
return preg_replace("/type=['\"]text\/(javascript)['\"]/", '', $tag);
}
答案 1 :(得分:0)
您已经提到您的客户希望删除这些标签。我认为您已经向他解释了它们是良性的(有时可以说有帮助)。除非您仍然需要删除这些标签,否则可以仅使用“运行时替换”,而不必尝试查找所有。单。实例。具有该属性的脚本,尤其是在一个插件或另一个插件无法正确入队脚本的情况下。
以该功能为例:
add_action( 'template_redirect', function(){
ob_start( function( $buffer ){
$buffer = str_replace( array( 'type="text/javascript"', "type='text/javascript'" ), '', $buffer );
return $buffer;
});
});
template_redirect
钩实际上可以访问该页面的所有标记。因此,您可以将其添加到Output Buffer,在其上运行简单的str_replace
,然后返回该输出。
您会注意到,我已经添加了两种引号注释类型,因为这两种注释都可能会出现在源代码中。如果需要,可以使用正则表达式,但是两个符号的数组都足够。
答案 2 :(得分:0)
我向功能添加了CSS,它解决了我的JS和CSS W3C验证警告。如果您发现错误,请告诉我。
//Remove JS and CSS types
add_action( 'template_redirect', function(){
ob_start( function( $buffer ){
$buffer = str_replace( array( 'type="text/javascript"', "type='text/javascript'", 'type="text/css"', "type='text/css'" ), '', $buffer );
return $buffer;
});
});