移除JS的自动版本化并加载到表头

时间:2019-02-17 作者:kydronin

我想删除我添加的JS,并通过wp进行版本控制。我有一个名为base的js脚本。js,wordpress自行加载

<script type="text/javascript" src="../base.js?ver=4.9.9"></script>
此代码删除版本号

function remove_cssjs_ver( $src ) {
    if( strpos( $src, \'?ver=\' ) )
        $src = remove_query_arg( \'ver\', $src );
    return $src;
}
add_filter( \'style_loader_src\', \'remove_cssjs_ver\', 1000 );
add_filter( \'script_loader_src\', \'remove_cssjs_ver\', 1000 );
但我想做的是阻止WP完全加载这个JS。我试着取消引导和排队,但没有成功。

2 个回复
SO网友:Brada

如果我读得正确,你只想注销一个脚本,但失败了。。。我认为您试图取消注册太早(在添加之前)。

add_action( \'wp_print_scripts\', \'example\' );
function example() {
   wp_dequeue_script( \'name_of_script\' );
}
通过调用“wp\\u print\\u scripts”中的函数应该可以,这比通常添加的“wp\\u enqueue\\u scripts”要晚。

SO网友:sMyles

如果希望它停止加载javascript文件,只需删除添加该脚本的PHP代码即可。

这听起来像是你不想把它加载到特定的页面上。您可以使用Brada的答案将脚本出列(由于开发人员太草率,我不得不一直为我的插件执行此操作),但实际上,您应该确保只有在需要时才正确注册并将脚本加入队列。

您应该首先使用wp_enqueue_scripts:

function wpdocs_theme_name_scripts() {
    wp_register_script( \'script-name\', get_template_directory_uri() . \'/js/example.js\', array(), \'1.0.0\', true );
}
add_action( \'wp_enqueue_scripts\', \'wpdocs_theme_name_scripts\' );
只有在需要的时候你才应该打电话wp_enqueue_script. 这是我在WordPress开发人员身上看到的最大问题之一——在每次加载页面时都将脚本和样式排队——这是WordPress的糟糕开发实践。

然后您可以正常呼叫wp_enqueue_scriptwp_enqueue_style 在特定页面上运行的PHP代码或文件中,您需要使用它。

另一个选项是检查wp_enqueue_scripts 在调用enqueue之前确保它是您的页面