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

oxf4rvwz  于 2022-11-22  发布在  WordPress
关注(0)|答案(4)|浏览(206)

我在WordPress网站上工作,这些警告是未来的每一个页面,有什么方法来解决这个问题。
警告:JavaScript资源不需要type属性。<script type="text/javascript">

vsikbqxv

vsikbqxv1#

从WordPress 5.3开始,您可以添加“style”和“script”来为Html5添加_theme_support以删除类型属性。

function register_html_support() {

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

}

add_action( 'after_setup_theme', 'register_html_support' );
h9vpoimq

h9vpoimq2#

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

add_action( 'template_redirect', 'prefix_remove_template_redirect', 10, 2);

function prefix_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' );
tktrz96b

tktrz96b3#

将以下代码添加到主题的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>

pepwfjgg

pepwfjgg4#

我加了两件事,这对我很有效:

#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或两者都有)吗?

相关问题