是否将脚本移至页脚,但排除一个脚本?

时间:2015-10-19 作者:tom84

我使用了一个PHP脚本将所有脚本移动到我的站点的页脚,但是一些插件不再工作了。

我使用了以下方法:

// JavaScript to footer --> läd alles im footer! 
remove_action( \'wp_head\', \'wp_print_scripts\' );    
remove_action( \'wp_head\', \'wp_print_head_scripts\', 9 );    
remove_action( \'wp_head\', \'wp_enqueue_scripts\', 1 );

add_action( \'wp_footer\', \'wp_print_scripts\', 5 );  
add_action( \'wp_footer\', \'wp_print_head_scripts\', 5 );  
add_action( \'wp_footer\', \'wp_enqueue_scripts\', 5 );    
有没有办法从PHP代码中排除单个脚本?

1 个回复
最合适的回答,由SO网友:Mayeenul Islam 整理而成

要停止将脚本排入队列,我们将以更高的优先级(10+)将脚本完全排入队列(无论从页眉还是页脚):

function dequeue_my_scripts() {
   wp_dequeue_script(\'script-handle-here\');
}
add_action( \'wp_print_scripts\', \'dequeue_my_scripts\', 11 );
将脚本置于页脚

function enqueue_scripts_to_footer() {
   wp_enqueue_script(\'script-handle-here\');
}
add_action( \'wp_footer\', \'enqueue_scripts_to_footer\' );
正确的方法是这样做,但将脚本排入页脚队列的正确方法是设置最后一个参数wp_enqueue_script()wp_register_script(), 到true:

function my_custom_scripts() {
    wp_enqueue_script( \'script-name\', get_template_directory_uri() .\'/js/example.js\', array(), \'1.0.0\', true ); //last parameter to true
}
add_action( \'wp_enqueue_scripts\', \'my_custom_scripts\' );

相关推荐