Czym jest functions.php i dlaczego go nie edytować

Jeśli jesteś trochę bardziej świadomym użytkownikiem to prawdopodobnie słyszałeś/aś o edycji pliku functions.php. Prawdopodobnie, gdy zaszła potrzeba usprawnienia strony o nową funkcjonalność lub poprawę już istniejącej. W poniższym tekście opiszę Ci czym jest functions.php, jak go edytować i dlaczego tego nie robić.

Czym jest functions.php

Plik functions.php jest częścią motywu i pełni w WordPress ważną rolę. Podobnie jak wtyczki, posiada kod PHP z funkcjonalnościami używanymi przez motyw na stronie. W pliku tym możesz np. dodać kod umieszczający sekcję z widżetami w stopce lub dodać dodatkowe pole adresowe w formularzu wysyłki WooCoomerce. Możesz też dopisać funkcję obliczającą kwotę do osiągnięcia darmowej wysyłki, dodać kod śledzenia Google Analitycs lub Facebook. Zakres możliwości, które daje Ci możliwość edycji tego pliku jest nieskończony.

Plik ten jest po prostu miejscem, gdzie „wpinasz” czyli dopisujesz wszystkie dodatkowe funkcje WordPress. Jest on automatycznie ładowany i używany przez WordPress.

Gdzie jest zlokalizowany

Plik functions.php znajduje się w folderze z plikami Twojego motywu. W zapleczu WordPress znajdziesz go w zakładce „Wygląd -> Edytor motywu”. To właśnie tam musisz go szukać, gdy chcesz dopisać do niego nową funkcję. Nie jest to jednak zalecane miejsce zmian.

Po pierwsze, jeśli nie jesteś autorem motywu, tylko zainstalowałeś darmowego lub płatnego gotowca, to warto doinstalować motyw potomny. Motyw potomny, to motyw służący do wprowadzania zmian w motywie głównym poprzez jego rozszerzanie. Znajduje się w nim miejsce na rozwój zarówno funkcji motywu jak i jego wyglądu poprzez dodanie nowych styli CSS. WordPress najpierw wczytuje motyw główny a następnie motyw potomny. Funkcje dopisane w motywie potomnym nadpisują te znajdujące się w motywie głównym. Zaletą tego rozwiązania jest to, że gdy autor motywu wyda aktualizację którą zainstalujesz, to nie stracisz swoich zmian w motywie.

Po drugie, plik ten służy do zmiany funkcjonowania i wyglądu motywu. Powinno się w nim zatem umieszczać taki kod, który jest związany stricte z motywem. Dlaczego zapytasz? Ano dlatego, że WordPress generalnie oddziela stronę wizualną (motywy) od strony funkcjonalnej (wtyczki). Gdy zmienisz motyw WordPress na inny, to dopisane tam funkcje nie będą wykonywane. To dobrze, jeśli odnoszą się tylko do jego wyglądu i działania. To źle, jeśli obliczają np. wspomnianą wartość zakupu do osiągnięcia darmowej wysyłki w sklepie.

Funkcje w praktyce

Istnieje wiele poradników w sieci, które udostępniają gotowe kawałki kodu, tzw. snippety, które należy wkleić do pliku functions.php aby osiągnąć pożądany efekt. Jak już wspomniałem ma to swoje wady:

  • w razie aktualizacji motywu, możesz utracić wprowadzone zmiany jeśli nie używasz motywu potomnego
  • utracisz wszystkie zmiany jeśli zmienisz motyw
  • błędy w kodzie z funkcjami mogą uczynić Twoją stronę całkowicie niedostępną. Zwykły brak średnika w kodzie stanie się poważnym problemem.

Jaka jest alternatywa?

Co zatem zrobić, aby dodać jakiś fragment kodu, nie zaśmiecając przy tym kodu motywu? Użyć osobnej wtyczki. Nie zawsze musi być to gotowa wtyczka z repozytorium.

Gdy musisz wprowadzić zmiany na stronie, napisz najlepiej własną wtyczkę. Wiem, brzmi strasznie, ale takie nie jest! Będzie to specyficzna wtyczka stworzona wyłącznie na Twoje potrzeby i uruchomiona tylko na Twojej stronie. Dzięki temu, cały dodatkowy kod poprawiający działanie strony zostanie odseparowany od motywu.

Alternatywnie, możesz użyć gotowej wtyczki Code Snippets, która pozwala na wygodne wklejanie fragmentów kodu tak samo jak do pliku functions.php. Jej zaletą jest natomiast możliwość odseparowania poszczególnych fragmentów kodu od siebie. Każdy nowy snippet po prostu dodajesz jako osobną instancję, którą możesz w dowolnym momencie włączyć lub wyłączyć. Jest to ogromna wygoda w utrzymywaniu i zarządzaniu stroną.

czym jest functions.php

Każdy snippet możesz dla swojej wygody dobrze opisać i otagować. Dzięki temu każda osoba, która zajrzy w przyszłości w kod, od razu we wszystkim się połapie. Ba, nie musi to być nawet inna osoba! Ja sam czasem się łapię na tym, że po roku czy dwóch już nie pamiętam dokładnie do czego dany fragment mógł służyć. Wszystkie snippety możesz też łatwo wyeksportować i użyć na innej stronie (jeśli są na tyle uniwersalne).

własny kod w functions.php

Porządek przede wszystkim

Mam nadzieję, że dowiedziałeś się z tego wpisu czym jest plik functions.php, jak i gdzie go edytować oraz jakie są wady i zalety takich poczynań. Dowiedziałeś się też, jak można uprościć sobie życie i uporządkować wszystkie dodatkowe fragmenty kodu.

Jeśli masz jakieś pytania lub przemyślenia dotyczące tego wpisu – zostawi mi je w komenarzach poniżej. pamiętaj też, że jestem dostępny również na Facebook oraz na YouTube. Trzymaj się!

ZAPISZ SIĘ DO NEWSLETTERA!

Bądź na bieżąco! W newsletterze będziesz otrzymywać m.in. informacje o nowych wpisach na blogu, poradnikach na YouTube, e-bookach oraz ważnych wydarzeniach ze świata WordPress. Wysyłam jedynie wartościowe treści.

Facebook
Twitter
Email
Drukuj