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.

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.