Podczas tworzenia strony WordPress często instalujemy różne wtyczki, które dodają nowe funkcje i modyfikują wygląd. Niestety, niektóre z tych wtyczek również dodają niepotrzebne style i skrypty, które mogą spowolnić ładowanie strony. Dlatego warto czasem zerknąć czy jest potrzeba, by one wszystkie ładowały się wszędzie – na każdej podstronie 🙂 W tym artykule pokażę, jak można to zrobić poprzez dodanie kodu do pliku functions.php, a także przedstawię przykład wyłączenia stylów i skryptów w zależności od typu strony.
Spis treści
Usuwanie niepotrzebnych stylów i skryptów
Aby usunąć niepotrzebne style i skrypty, możemy skorzystać z hooka wp_enqueue_scripts(). Wcześniej można było korzystać z wp_print_styles(), ale nie jest to już zalecane.
Przykład kodu, który usuwa styl i skrypt z wtyczki o nazwie „nazwa_wtyczki”:
function dws_delete_useless_styles_and_scripts() {
wp_dequeue_style('nazwa_wtyczki');
wp_deregister_style('nazwa_wtyczki');
wp_dequeue_script('nazwa_wtyczki');
wp_deregister_script('nazwa_wtyczki');
}
add_action('wp_enqueue_scripts', 'dws_delete_useless_styles_and_scripts', 100);
Oczywiście należy podmienić „nazwa_wtyczki” na odpowiednią nazwę wtyczki, którą chcemy usunąć. Tą pełną nazwę można znaleźć w kodzie źródłowym strony lub w dokumentacji wtyczki.
Ta nazwa znajduje się w id danego stylu lub skryptu i ma dopisek css lub js. W implementowanym kodzie do functions.php pomijamy css i js


Usuwanie stylów lub skryptów warunkowo w zależności od typu strony
Jeśli chcemy usunąć styl lub skrypt tylko na określonej stronie, możemy skorzystać z różnych funkcji określających na jakiej jesteśmy podstronie np. is_page(), is_front_page(), is_home, is_page_template() – czy w przypadku woocommerce: is_woocommerce(). Stosujemy wtedy warunek if. Przykładem może być usunięcie stylu z wtyczki Contact Form 7 z wszystkich stron, oprócz strony głównej:
function dws_delete_useless_styles_and_scripts() {
if (!is_front_page()) {
wp_dequeue_style('contact-form-7');
wp_deregister_style('contact-form-7');
wp_dequeue_script('contact-form-7');
wp_deregister_script('contact-form-7');
wp_dequeue_script('wpcf7-recaptcha');
wp_deregister_script('wpcf7-recaptcha');
wp_dequeue_script('google-recaptcha');
wp_deregister_script('google-recaptcha');
}
}
add_action('wp_enqueue_scripts', 'dws_delete_useless_styles_and_scripts', 100);
W powyższym przykładzie nie tylko usuwamy style i skrypty 'contact-form-7′, ale także skrypty Google reCaptcha, które nie będą nam potrzebne jeśli nie będzie formularza kontaktowego na danej podstronie. Tego wszystkiego nie będzie jeśli strona nie jest stroną główną (is_front_page).
Podsumowanie
Dodanie powyższych fragmentów kodu do pliku functions.php pozwoli usunąć niepotrzebne style i skrypty z Twojej strony WordPress oraz zoptymalizować jej ładowanie. Pamiętaj, że przed dokonaniem jakichkolwiek zmian w plikach swojej witryny, zawsze warto wykonać kopię zapasową, aby uniknąć utraty danych i ewentualnych problemów.
Jeśli masz jakieś pytania czy przemyślenia lub potrzebujesz pomocy z konkretnym przypadkiem, napisz w komentarzu.