WordPress: Отключить CSS файлы зарегистрированные плагином

Сторонние плагины которые вы обычно так щедро устанавливаете в WordPress имеют возможность включать свои собственные файлы CSS, и казалось бы что это здорово, вам не нужно писать свой код для их оформления. Но на практике оказывается что далеко не всё так прекрасно и логично. Бывает что ставя небольшой плагин лайтового календарика, он тащит за собой такие серьёзные зависимости как Bootstrap или Font Awesome которые скорей всего и так уже есть в вашей теме, или наоборот вам не упали.

К счастью у нас есть такой замечательный интсрумент, который позволяет не только регистрировать новые стили, но так-же и выпиливать уже зарегистрированные сторонними плагинами CSS файлы. Давайте разберёмся как это работает. Для этого в файле function.php вашей темы необходимо исключить файл из очереди отправки в браузер, вот таким образом:

[code language=»php»] //dequeue css from plugins
add_action(‘wp_print_styles’, ‘mytheme_dequeue_css_from_plugins’, 100);
function mytheme_dequeue_css_from_plugins() {
wp_dequeue_style( «plugin-css-file-handle» );
}
[/code]

В этом экшене вы просто указываете дескриптор файла(ов), который вы хотите игнорировать. Данный дескриптор вы можете легко найти в файле плагина в методе wp_enqueue_style().

Вы можете удалить все файлы, которые вам больше ненужны, просто перечислив их в функции mytheme_dequeue_css_from_plugins(). Вы даже можете удалить файлы сценариев, если задача того требует.

Так же есть более декларативный вариант для решения подобной задачи:

[code language=»php»] function remove_styles () {
wp_deregister_style (‘fancybox’);
wp_deregister_style (‘contact-form-7’);
wp_deregister_style (‘etc’);
}
add_action (‘wp_print_styles’,’remove_styles’,100);
[/code]

Далее часто для оптимизации скорости для Google Speed Test необходимо перенести все JS файлы в подвал, делается это вот таким образом:

[code language=»php»] function footer_enqueue_scripts(){
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_enqueue_scripts’,5);
add_action(‘wp_footer’,’wp_print_head_scripts’,5);
}
add_action(‘after_setup_theme’,’footer_enqueue_scripts’);
[/code]

Довольно часто в плагинах некоторых рукожопов можно встретить jQuery напиханный прямо посреди страницы, что конечно же приведёт к поломке такого шедеврального плагина. Для того что бы избежать подобных ударов судьбы, есть вот такой хак:

В хеадер добавляем:
[code]
[/code]

И в футер, сразу после :
[code]
[/code]