WordPressのスクリプトタグからtype属性を削除する

W3Cで、チェックすると以下の警告がでた、、、

Warning: The type attribute is unnecessary for JavaScript resources.
Warning: The type attribute for the style element is not needed and should be omitted.

調べてみるとJavaScriptとCSSで、type属性が、不要らしくWordPressから、属性を削除するコードがあったので、メモしておきます。

functions.phpに以下を追記すると「type=”text/javascript”」、「type=”text/css”」が削除されます。
(「type=’text/javascript’」、「type=’text/css’」の場合も削除)

add_action( 'template_redirect', function(){
  ob_start( function( $buffer ){
    $buffer = str_replace( array( 'type="text/javascript"', "type='text/javascript'" ), '', $buffer );

    // 他の属性
    $buffer = str_replace( array( 'type="text/css"', "type='text/css'" ), '', $buffer );
    $buffer = str_replace( array( 'frameborder="0"', "frameborder='0'" ), '', $buffer );
    $buffer = str_replace( array( 'scrolling="no"', "scrolling='no'" ), '', $buffer );

    return $buffer;
  });
});

本記事みたいに記事内に「type=”text/javascript”」、「type=”text/css”」を記載する場合は、以下のように記載する。
(上記の記載だと記事内の「type=”text/javascript”」、「type=”text/css”」が消えてします為)

add_action( 'template_redirect', function(){
    ob_start( function( $buffer ){
        $buffer = str_replace( array( '<script type="text/javascript"', "<script type='text/javascript'" ), '<script', $buffer );
        $buffer = str_replace( array( '<style type="text/css"', "<style type='text/css'" ), '<style', $buffer );
        return $buffer;
    });
});

function remove_script_type( $tag ) {
  $tag = str_replace( array( 'type="text/javascript"', "type='text/javascript'" ), '', $tag );
  return $tag;
}
add_filter('script_loader_tag','remove_script_type');

function remove_style_type( $tag ) {
  $tag = str_replace( array( 'type="text/css"', "type='text/css'" ), '', $tag );
  return $tag;
}
add_filter('style_loader_tag','remove_style_type');

また、他にも方法があったらメモします。