个性化阅读
专注于IT技术分析

从WordPress的脚本标签中删除type属性

我正在WordPress网站上工作, 这些警告出现在每个页面上, 是否有任何方法可以解决此问题。

警告:JavaScript资源不需要type属性。 <script type =” text / javascript”>


#1


将以下代码添加到主题的functions.php中

add_action( 'template_redirect', '8798saf_remove_template_redirect', 10, 2);

function 8798saf_remove_template_redirect(){
  ob_start( function( $buffer ){
    $buffer = str_replace( array( 
        '<script type="text/javascript">', "<script type='text/javascript'>", "<script type='text/javascript' src=", '<script type="text/javascript" src=', '<style type="text/css">', "' type='text/css' media=", '<style type="text/css" media', "' type='text/css'>"
    ), array(
        '<script>', "<script>", "<script src=", '<script src=', '<style>', "' media=", '<style media', "' >"
    ), $buffer );

    return $buffer;
  });
};

这会将<script type =” text / javascript”>更改为<script>, 并将<style type =” text / css”>更改为<style>。可以通过script_loader_tag完成, 但是给定的主题检查验证错误。

更新:对于WordPress 5.3, 你可以使用以下内容。

function theme_name_setup() {

    add_theme_support( 'html5', array( 'script', 'style' ) );

}

add_action( 'after_setup_theme', 'theme_name_setup' );

#2


将以下代码添加到主题的functions.php中

add_filter('script_loader_tag', 'clean_script_tag');
  function clean_script_tag($input) {
  $input = str_replace("type='text/javascript' ", '', $input);
  return str_replace("'", '"', $input);
}

对于插件加载的脚本, 这会将<script type =” text / javascript”>更改为<script>。

然后在主题页眉的页脚php文件中将<script type =” text / javascript”>更改为<script>。


#3


从WordPress 5.3开始, 你可以在Html5的add_theme_support中添加”样式”和”脚本”以删除类型属性。

function register_html_support() {

    add_theme_support( 'html5', array( 'script', 'style' ) );

}

add_action( 'after_setup_theme', 'register_html_support' );

#4


我添加了两件事。这对我有用:

#one for JS mime-type
add_action( 'template_redirect', function(){
  ob_start( function( $buffer ){
       $buffer = str_replace( array( 'type="text/javascript"', "type='text/javascript'" ), '', $buffer );        
       return $buffer;
    });
});
#one for CSS-Mime-Type
add_action( 'template_redirect', function(){
    ob_start( function( $buffer ){
        $buffer = str_replace( array( 'type="text/css"', "type='text/css'" ), '', $buffer );        
        return $buffer;
    });
});

我知道你可以在一个函数中同时做这两个事情, 但是在这里你可以自己决定想要什么(JS或CSS或两者兼有)

赞(0)
未经允许不得转载:srcmini » 从WordPress的脚本标签中删除type属性

评论 抢沙发

评论前必须登录!