从联系表单7标记中删除type ='text / javascript'

时间:2018-08-06 14:11:06

标签: php wordpress contact-form-7

我从wordpress网站上删除了大多数类型属性,但仍然可以在联系表7标签上看到它,如何删除它们?

我在Google上进行搜索,但未找到解决方案。请帮忙!

注意:我正在验证validator.w3.org上的html,它会发出警告,请参阅下文。

Warning: The type attribute is unnecessary for JavaScript resources.

3 个答案:

答案 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;
});
});