通过 wp_head 或 wp_footer 加载的脚本在 Wordpress 中排队。
如果您想删除这些并且只加载一个样式表和一个 JS 文件,那么您需要将所有其他脚本出列。
不过,首先,您需要确定哪些脚本已入队,您可以通过加载全局 $wp_styles 和 $wp_scripts 变量并像这样迭代它们来完成:
function se_inspect_styles() {
global $wp_styles;
echo "<h2>Enqueued CSS Stylesheets</h2><ul>";
foreach( $wp_styles->queue as $handle ) :
echo "<li>" . $handle . "</li>";
endforeach;
echo "</ul>";
}
add_action( 'wp_print_styles', 'se_inspect_styles' );
function se_inspect_scripts() {
global $wp_scripts;
echo "<h2>Enqueued JS Scripts</h2><ul>";
foreach( $wp_scripts->queue as $handle ) :
echo "<li>" . $handle . "</li>";
endforeach;
echo "</ul>";
}
add_action( 'wp_print_scripts', 'se_inspect_scripts' );
然后您可以通过挂钩wp_print_styles 操作(适用于 CSS 文件)和 wp_print_scripts 操作(适用于 JS 文件)手动使所有这些脚本出列并取消注册,如下所示:
// Dequeue CSS
function se_dequeue_unnecessary_styles() {
wp_dequeue_style( 'bootstrap-map' );
wp_deregister_style( 'bootstrap-map' );
}
add_action( 'wp_print_styles', 'se_dequeue_unnecessary_styles' );
// Dequeue JS
function se_dequeue_unnecessary_scripts() {
wp_dequeue_script( 'modernizr-js' );
wp_deregister_script( 'modernizr-js' );
wp_dequeue_script( 'project-js' );
wp_deregister_script( 'project-js' );
}
add_action( 'wp_print_scripts', 'se_dequeue_unnecessary_scripts' );
如果您仍然需要任何已出队的脚本,那么请务必将它们的源代码添加到您的 grunt / gulp 文件中。
最后,您需要将由 grunt / gulp 生成的单个 CSS 和 JS 脚本排入队列(尽管如果您愿意,可以随时从模板手动链接到这些脚本)。
以下是一些示例代码:
function se_theme_js(){
// Theme JS
wp_register_script( 'my-scripts',
get_template_directory_uri() . '/js/main.min.js',
array('jquery'),
null,
true );
wp_enqueue_script('my-scripts');
}
add_action( 'wp_enqueue_scripts', 'se_theme_js' );
function se_theme_styles() {
// Theme CSS
wp_register_style( 'my-style',
get_stylesheet_directory_uri() . '/css/main.min.css',
array(),
null,
'all' );
wp_enqueue_style( 'my-style' );
}
add_action( 'wp_enqueue_scripts', 'se_theme_styles' );