Dlaczego nie powinieneś używać funkcji.php (i co powinieneś zrobić zamiast tego)

Czy natknąłeś się na tutoriale WordPress z prośbą o dodanie kodu do swojego funkcje.php akta, żeby coś zrobić? Nie rób tego! Przeczytaj poniżej i dowiedz się dlaczego…

Wierzę, że osoby korzystające z WordPressa można podzielić na trzy szerokie obozy:

  1. Plug and players: entuzjaści WordPressa, którzy prawdopodobnie nie są doświadczonymi projektantami stron internetowych i szukają rozwiązania “pod klucz”. Znajdą motyw, zainstalują go i prawdopodobnie zajmą się tworzeniem treści.
  2. Tweakers: ci ludzie wezmą motyw, który prawdopodobnie może być używany od razu po wyjęciu z pudełka i zastosują własne poprawki. Prawdopodobnie skorzystają z zwyczaj.css oraz custom_functions.php pliki (lub podobne), aby dostosować ich motyw. Wezmą opcję z półki i będą się nią bawić, dopóki nie będą mieli czegoś, co (a) odpowiada ich potrzebom i (b) wygląda unikalnie.
  3. Frameworki: są to zazwyczaj programiści, którzy zaczną od frameworka tematycznego, który oferuje bardzo niewiele poza – jak się domyślacie-frameworkiem, na którym może usiąść treść. Kilka godzin lub dni później stworzą coś naprawdę wyjątkowego i dostosowanego do ich-lub specyficznych potrzeb klienta.

Gdybym miał zgadywać, powiedziałbym, że największym obozem z trzech jest tweakers.

Spójrzmy prawdzie w oczy: WordPress to raj dla tweakerów. Uzbrojony w nic więcej niż wyszukiwarka Google i twój funkcje.php plik, WordPress ułatwia dodawanie różnorodnych funkcjonalności do witryny ze względną łatwością.

Jedynym problemem jest to, że wielu szczypiornistów bawi się ogniem. Używanie funkcje.php dodanie funkcjonalności do witryny może być wypadkiem czekającym na zdarzenie (z wielu powodów).

functions.php file
Dodaj funkcjonalność do swojej witryny WordPress, ale nie za pomocą swoich funkcji.plik php.

W tym artykule wyjaśnię, dlaczego nie powinieneś dodawać kodu do swojego funkcje.php plik, i zaoferować Ci o wiele lepsze alternatywy:

Jak Działa WordPress

U podstaw WordPressa leży prosta zasada: design i funkcjonalność powinny (w miarę możliwości) być wyraźnie oddzielone.

Dlatego mamy motywy i wtyczki; pozornie motywy ponoszą wyłączną odpowiedzialność za projekt, a wtyczki ponoszą wyłączną odpowiedzialność za funkcjonalność. Jeden powinien być w stanie przełączać motywy bez wpływu na funkcjonalność, a jeden powinien być w stanie dezaktywować wtyczki bez wpływu na projekt.

To nie jest zawsze możliwe (niektóre z powodów, dla których wkrótce przejdę), ale rozdzielenie projektu i funkcjonalności jest ideałem, do którego powinien dążyć każdy programista WordPress wart swojej soli.

PHP vs funkcje.php

Początkujący WordPress często się mylą i zadają pytania takie jak:

  • Gdzie jest Funkcje PHP w WordPress?
  • Co robi PHP w WordPress?
  • Jak dodać funkcję do funkcji PHP w WordPress?
  • Czy plik PHP funkcji jest wymagany w każdym motywie?

Po pierwsze, PHP znajduje się wszędzie w WordPress, ponieważ jest to główny język, na którym zbudowany jest WordPress. Nie omawiamy tego, co PHP robi w WordPress w tym poście, ale możesz przeczytać o tym w naszej serii samouczków Learn PHP dla początkujących programistów WordPress.

funkcje.php> jest plikiem specyficznym dla tematu, przez co mam na myśli, że istnieje w katalogu motywu WordPress i dotyczy tylko tego motywu. Każdy temat powinien mieć funkcje.php plik znajdujący się wewnątrz folderu motywu.

Theme Functions PHP File inside Theme directory
A funkcje.plik php jest wymagany dla każdego motywu WordPress i można go znaleźć w katalogu motywów.

Możesz dowiedzieć się więcej o funkcjach.plik php, co robi i jak dodać funkcje w naszym ostatecznym Przewodniku po funkcjach WordPress.plik php.

Więc gdzie ma funkcje.PHP pasuje do tego?

Jak można się domyślić z nazwy, funkcje.php zawiera funkcje związane z tematem, których przykładami są:

  • Wykorzystanie wyróżnionych zdjęć
  • Długość fragmentów
  • Widgetized areas

Tego typu funkcje są wyjątkami, które dowodzą zasady rozdziału projektu/funkcjonalności WordPress. Podczas gdy oni are elementy funkcjonalności są istotne tylko dla ich motywu nadrzędnego i mogą nie być odpowiednie, gdy są stosowane do innego motywu. Jako takie należą do funkcje.php i powinien tam zostać.

Na przykład długość fragmentu 200 słów może wyglądać fantastycznie na jednym temacie, ale okropnie na innym. Chociaż technicznie bawimy się “funkcjonalnością” witryny, dostosowując długość fragmentu, w tym niezbędny kod w funkcje.php to słuszna decyzja.

Nie zamierzam wdawać się w zawiłości efektywnego wykorzystania funkcje.php w tym artykule, ale warto wspomnieć w tym czasie, że jeśli masz zamiar uwzględnić wiele funkcji specyficznych dla tematu w swojej witrynie, powinieneś rozważyć utworzenie inc katalog wewnątrz motywu (lub za pomocą istniejącego katalogu, jeśli już istnieje), aby uzyskać pewną organizację wśród funkcji motywu. Oto świetna lektura od programisty WordPress Toma Mcfarlina na ten temat, jeśli chcesz pójść dalej tą ścieżką.

Moim ostatecznym celem jest to: funkcje.php nie jest wrogiem. Jest to wartościowy trybik w silniku motywu; niezbędny dla wszystkich, ale najbardziej podstawowych projektów.

Jednak nadużywanie funkcje.php jest rozległy i powinien być zatrzymany.

Kiedy Nie powinieneś używać funkcji.php

Prosta odpowiedź na pytanie, Kiedy należy używać funkcje.php jest ” prawie nigdy.”

Nieco bardziej skomplikowana odpowiedź brzmi: “użyj nogi.”

Jeśli rozumiesz co funkcje.php jest dla (funkcjonalność ściśle związana z konkretnym tematem), powinieneś być w stanie dowiedzieć się, co to nie jest dla.

Proste przykłady można znaleźć w katalogu wtyczek witryny WordPress. Wtyczki są (najlepiej mówiąc) logicznie ułożonymi “pakietami” kodu oddzielonymi ich zamierzoną funkcjonalnością.

Jednym z najlepszych (i wyższego profilu) przykładów całego punktu oddzielania funkcjonalności od projektu w WordPress jest kod śledzenia Google Analytics, który wygląda tak:

Google Analytics Tracking Code

Kod ten należy dodać do Głowa sekcja witryny w celu śledzenia wizyt.

Masz trzy główne opcje, jeśli chodzi o dodawanie tego kodu:

  1. Dodaj go ręcznie do motywu nagłówek.php plik
  2. Dodaj go ręcznie do swojego funkcje.php (za pomocą haka)
  3. Użyj wtyczki

Jeśli użyjesz opcji jednej lub dwóch, Twój kod śledzenia zniknie, jeśli zmienisz motywy, a odwiedzający nie będą już liczeni przez Google. (Może również zniknąć przy następnej aktualizacji motywu.) Ale jeśli używasz opcji trzeciej (polecam korzystanie z WPMU DEV własnego Google Analytics +), jesteś złoty. Chyba że masz chwilę seniora i dezaktywujesz wtyczkę, której używasz, ten kod śledzenia zmierza donikąd.

Moja prosta rada jest taka: w razie wątpliwości użyj wtyczki. Są popularne nie bez powodu.

Dlaczego Nie powinieneś używać funkcji.php

Wyjaśniając powyżej “kiedy”, poszedłem również uczciwie wyjaśniając “dlaczego:” nie używaj funkcje.php ponieważ zmiana motywu zmieni funkcjonalność witryny, co jest wszelkiego rodzaju błędem.

Jest jednak kilka innych ważnych kwestii, które powinienem poruszyć, aby jeszcze bardziej wzmocnić powody unikania funkcje.php jak najwięcej.

Przede wszystkim jest przerażający ” biały ekran śmierci.”Szczerze mówiąc, jeśli nigdy nie spotkałeś się z tym podczas zabawy z WordPressem,nie żyłeś. A przynajmniej byłeś o wiele bardziej ostrożny niż ja, kiedy po raz pierwszy zacząłeś majstrować przy WordPressie.

Czuję, że na tym etapie potrzebujemy zrzutu ekranu, aby wyjaśnić, jak wygląda ten biały ekran śmierci:

WordPress White Screen Of Death
Tak … WordPress “biały ekran śmierci” wyświetla całkowicie pusty ekran.

Przerażające. Ale co to znaczy?

Cóż, mówiąc po angielsku Królowej, napotyka się biały ekran śmierci, gdy ktoś wkłada swoje PHP.

Innymi słowy, nawaliłeś.

Inaczej mówiąc, Błędy składniowe w kodzie PHP wstawione do funkcje.php może “złamać” witrynę, prowadząc do tego, że nie widzisz nic więcej niż biały ekran. (Nie pytaj mnie, skąd bierze się” śmierć”. Z tego, co wiem, nikomu nic się nie stanie.)

Po napotkaniu białego ekranu śmierci lepiej jest edytować witrynę za pośrednictwem FTP lub internetowego IDE (takiego jak ShiftEdit), a nie zaplecza WordPress, w przeciwnym razie będziesz miał problemy z powrotem do swojej witryny. Dodatkowo dostaniesz ode mnie klapsa za korzystanie z zaplecza WordPress. Niegrzeczny.

Ale dygresję. Chodzi mi o to, że umieszczenie kodu PHP w wtyczce może zapobiec wystąpieniu białego ekranu śmierci. Zamiast tego WordPress może dezaktywować wtyczkę naruszającą prawo bez negatywnego wpływu na dalsze działanie witryny jako całości.

Po drugie, za pomocą funkcje.php jest po prostu bałagan, jeśli planujesz wstawić więcej niż garść kodu; zwłaszcza jeśli motyw, którego używasz, ma już istniejące funkcje.

Po trzecie, i jak już wspomniałem powyżej, kod w funkcje.php nie będzie podróżować po zmianie motywów) i może zostać nadpisany przez aktualizacje motywów.

Nic z tego nie jest dobre i powinno cię przekonać, że funkcje.php nie jest to miejsce, w którym chcesz umieścić swój kod w większości przypadków. Jasne; zostaw to, co tam jest domyślnie takie, jakie jest (przy założeniu, że tprogramista hem włączył tylko funkcjonalność związaną z tematem), ale każdy nowy kod, który dodajesz, jest prawdopodobnie uczciwy.

Więc co robisz zamiast tego?

Co Zrobić Zamiast

Cóż, jak się okazuje, masz 3 opcje:

  1. Dodaj do funkcje.php z motyw potomny
  2. Użyj wtyczki funkcji niestandardowych WordPress
  3. Stwórz własną wtyczkę

Przyjrzyjmy się krótko każdej z tych opcji:

Użyj funkcji motywu potomnego.php

Zawsze powinieneś używać motywów potomnych w WordPress. Zwłaszcza jeśli planujesz wprowadzić jakiekolwiek zmiany do swojego motywu. W ten sposób nie stracisz żadnego niestandardowego projektu ani modyfikacji, gdy główny (tj.

Jeśli na przykład chcesz pociągnąć stylizację z motywu nadrzędnego do motywu podrzędnego, będziesz musiał go zapytać w szablonie podrzędnym funkcje.php plik. Jeśli twój motyw potomny go nie ma, musisz utworzyć funkcje.plik php dla niego.

Child Theme functions.php
Jeśli musisz używać pręta, nie oszczędzaj funkcji motywu potomnego.php

Jeśli chcesz dodać kod do funkcje.php plik, zrób to w swoim motywie potomnym funkcje.php.

Należy jednak pamiętać, że nie jest to zalecane rozwiązanie i może prowadzić do błędów. Istnieje lepsza alternatywa … użyj wtyczki!

Użyj Wtyczki WordPress Dla Funkcji.php

Lepsza opcja niż dodawanie kodu bezpośrednio do funkcji.plik php jest użycie WordPress custom functions plugin.

My Custom Functions WordPress Plugin
Moje Funkcje Niestandardowe Wtyczka WordPress

Moje funkcje niestandardowe to sprytna darmowa wtyczka funkcjonalna WordPress, która pozwala łatwo dodawać niestandardowy kod PHP do witryny WordPress bez edycji funkcje.php plik Twojego motywu lub dowolnego pliku wtyczki.

Aby zainstalować wtyczkę, przejdź do Wtyczki > Dodaj nowy w menu pulpitu nawigacyjnego, wpisz “moje funkcje niestandardowe” w polu wyszukiwania słów kluczowych, znajdź wtyczkę “moje funkcje niestandardowe” od Space X-Chimp i kliknij Zainstaluj teraz, a następnie aktywuj…

Add My Custom Functions WordPress Plugin
Zainstaluj i aktywuj wtyczkę do WordPressa My Custom Functions.

Po aktywacji wtyczki w menu ustawień WordPress pojawi się nowy element menu. Aby dodać funkcje niestandardowe do WordPress, wybierz PHP Inserter z menu Ustawienia.

My Custom Functions WordPress menu
Moje niestandardowe funkcje WordPress menu

Spowoduje to wyświetlenie ekranu Moje funkcje niestandardowe. Po prostu dodaj swój niestandardowy kod PHP do pola, kliknij Zapisz i włącz funkcję, a wtyczka automatycznie doda Twój kod PHP do twojej witryny bez zmiany żadnych plików motywów i bez spowalniania witryny.

Dodaj funkcje niestandardowe do WordPressa za pomocą wtyczki moje funkcje niestandardowe.

Ta wtyczka działa niezależnie od zainstalowanego motywu, więc możesz go używać z dowolnym motywem, nawet jeśli motyw nie ma funkcje.php plik.

Korzyści z używania ta metoda polega na tym, że każdy kod, który dodasz do swojej witryny WordPress za pomocą tej wtyczki, pozostanie niezmieniony, jeśli edytujesz zawartość motywu funkcje.php pliku, a nawet jeśli zmienisz motyw. Działa to również w przypadku wtyczek, więc niestandardowy kod PHP nie zostanie nadpisany, nawet jeśli zaktualizujesz lub zmienisz motywy lub wtyczki.

Istnieje jeszcze jedna opcja dodawania kodu do witryny WordPress bez dotykania motywu funkcje.php plik.

Stwórz Własną Wtyczkę

Jeśli jesteś ogrodową odmianą WordPress tweaker i nigdy wcześniej nie stworzyłeś własnej wtyczki, wybaczysz sobie myślenie, że wiąże się to z pewnym skomplikowanym i tajemniczym procesem. Być może potrzebne jest jakieś zaklęcie.

Na szczęście tak nie jest. Jeśli wiesz jak edytować funkcje.php plik poprawnie (przez FTP lub IDE online), masz już niezbędne umiejętności, aby utworzyć wtyczkę dla całego kodu, który w przeciwnym razie byłby wkładany do funkcje.php.

Więc zróbmy to.

Po pierwsze, przejdź do folderu głównego witryny WordPress za pośrednictwem FTP (lub menedżera plików panelu hostingu lub internetowego IDE). Stamtąd powinieneś przejść do wp-content / wtyczki:

WordPress directory folders

WordPress katalog foldery

Foldery, które widzisz w katalogu wtyczek, są (jak możesz sobie wyobrazić) wtyczkami obecnie zainstalowanymi w Twojej witrynie. Aby utworzyć własną wtyczkę, po prostu utwórz nowy folder. Nazwę to TME-custom-functions:

WordPress custom functions plugin folder

Folder wtyczek funkcji niestandardowych WordPress

(“TME” to moje inicjały i dodaję je do nazwy wtyczki, aby przypadkowo nie użyć nazwy istniejącej wtyczki.)

Następnie utwórz plik PHP o tej samej nazwie w folderze wtyczki:

WordPress plugin add to functions.php

Użyj tej wtyczki funkcji niestandardowych WordPress, aby dodać kod do funkcje.php

Na koniec wstaw poniższy kod do nowego pliku PHP:

To wszystko! Upewnij się, że plik jest zapisany, a nowa wtyczka funkcji niestandardowych WordPress pojawi się teraz na liście wtyczek WordPress:

WordPress plugins table
Twoja nowa wtyczka funkcji niestandardowych WordPress … gotowa do aktywacji i użycia.

Oczywiście twój plugin nie do nic jeszcze, ale teraz możesz wstawić dowolne funkcje niestandardowe, które wcześniej znajdowały się w Twoim funkcje.php pliku i będą nadal działać normalnie.

Idąc o krok dalej: Tworzenie wtyczki “Must Use” (mu-Plugin)

Średnia wtyczka jest dobra i dobra, ale co jeśli chcesz, aby wybrane funkcje działały na twojej stronie pod wszystkimi poszlakamies? Co zrobić, jeśli nie chcesz, aby Twoja nowa niestandardowa wtyczka zaśmiecała listę wtyczek?

Wygląda na to, że musisz zrobić z niej wtyczkę “must use”, czyli wtyczki, które są zawsze aktywne w Twojej witrynie (i nie można ich dezaktywować). Nie pojawią się nawet na liście wtyczek w WordPress, chyba że klikniesz link “musisz użyć” w tabeli wtyczek.

Aby wtyczka “musi być używana”, po prostu utwórz folder o nazwie mu-pluginy w Twojej witrynie WordPress wp-content katalogu, a następnie przenieś plik PHP wtyczki (nie cały folder) do niego.

Hej, presto! Wtyczka znika z listy i pojawia się ponownie w nowej sekcji obowiązkowej:

Must-use plugin
Spraw, aby wtyczka WordPress functions była wtyczką obowiązkową.

Przenieśmy zabawę z powrotem do funkcji.php

Mam nadzieję, że teraz wiesz, co powinieneś i nie powinieneś używać funkcje.php plik dla i że istnieją lepsze alternatywy dodawania kodu do WordPress, takie jak korzystanie z wtyczki funkcji niestandardowych WordPress, tworzenie własnej wtyczki, a nawet używanie motywu dziecka funkcje.php plik.

Tworzenie własnej wtyczki do dodawania niestandardowych funkcji do WordPress jest zawsze opcją. Jeśli nic innego, może sprawić, że będziesz wyglądać jak mądry programista WordPress, tworząc wtyczkę, która pojawi się na zapleczu WordPress Twoich klientów, lub przynajmniej sprawi, że poczujesz się znacznie lepiej w kodowaniu niż w rzeczywistości (przynajmniej tak to sprawia, że na Poczuj!)

Aby uzyskać więcej przydatnych informacji na temat tego, co powinieneś wiedzieć o używaniu funkcje.php, sprawdź nasz najlepszy przewodnik po funkcjach WordPress.plik php. A jeśli naprawdę chcesz zaimponować społeczności WordPress, dlaczego nie nauczyć się PHP i zacząć kodować własne wtyczki i motywy? Jest zabawny, funkcjonalny i darmowy!

Tagi: