Сценарии, которые загружаются через 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');
Затем вы можете вручную DEQUEUE и дерегистрировать все эти сценарии, зацепив в 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.
Наконец, вы захотите вставить в очередь один единственный скрипт CSS и JS, созданный grunt/gulp (хотя вы всегда можете просто ссылаться на них вручную из своих шаблонов, если вам это нравится).
Вот несколько примеров кода для этого:
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');