Przewodnik po korzystaniu z wtyczek funkcji niestandardowych w WordPress
Opublikowany: 2024-03-07Przez ponad dekadę jako programista backendu WordPressa korzystałem z różnych metod, aby dostosować WordPress do potrzeb moich i innych. Najczęstszym jest pisanie niestandardowych wtyczek funkcyjnych WordPress. Jak zobaczysz poniżej, nie jest to jedyna opcja i nie zawsze właściwa.
Chociaż dedykuję ten post programistom, menedżerowie projektów dowiedzą się również, w jaki sposób te metody odpowiadają potrzebom ich zespołu oraz kiedy i jak z nich korzystać.
Oto metody, których używam do dostosowywania WordPressa:
- Dodaj swój kod do
functions.php
motywu - Napisz wtyczkę funkcji niestandardowej WordPress
- Użyj wtyczki do zarządzania niestandardowymi fragmentami kodu
- Bonus: Należy używać wtyczek
Przyjrzyjmy się bliżej każdej z tych metod.
Dodaj kod do plikufunctions.php
W „dawnych” czasach, kiedy WordPress używał głównie PHP w interfejsie i backendie, najszybszym sposobem na wprowadzenie pewnych zmian w witrynie było dodanie kodu do plikufunctions.php motywu.
Nadal możesz to zrobić, a jeśli się odważysz, użyj do tego Edytora plików motywów w panelu WordPress.
Z biegiem czasu mój ulubiony sposób dostosowywania WordPressa zmienił się na najmniej ulubiony.
Głównym powodem jest to, że functions.php
jest dołączony do motywu. Jeśli nie jest to motyw niestandardowy i ktoś go zaktualizuje, moje zmiany znikną.
Rozwiązaniem jest utworzenie motywu podrzędnego zawierającego zmiany związane z motywem nadrzędnym.
Głównym powodem, dla którego nie dodawałem już tak dużej ilości niestandardowego kodu do functions.php
, jest to, że w rzeczywistości większość tego kodu stanowiła wtyczka, dodająca funkcjonalność do witryny w ogóle, a nie tylko do motywu.
Nadal są dwie sytuacje, w których piszę niestandardowy kod do functions.php
:
- Kod odnosi się do motywu niestandardowego lub podrzędnego.
- Testuję szybkie zmiany, zanim przeniosę je w inne miejsce, ponieważ często dostęp do
functions.php
jest w tym celu łatwy.
Należy także pamiętać, że functions.php
nie jest miejscem do przechowywania wielu zmian, ponieważ pojedynczy plik może stać się zbyt skomplikowany. Zwłaszcza, gdy w moich zmianach potrzebuję wielu plików PHP i innych typów plików, decyduję się napisać wtyczkę z niestandardową funkcją WordPress.
Pisanie niestandardowych wtyczek funkcyjnych
Jak wspomniałem wcześniej, większość kodu, który dodaję do mojej witryny, tak naprawdę tworzy lub rozszerza funkcjonalności niezależne od motywu.
Kiedy już wiem, że dodam więcej dostosowań do witryny, uruchamiam wtyczkę z niestandardową funkcją. Zwykle nosi nazwę witryny, tak jak nazwałbym ją dla WP Mayor, wtyczki „WP Mayor Custom Functions”.
Nazewnictwo ma kluczowe znaczenie! Po pierwsze, pozwala innym administratorom zobaczyć, że ta wtyczka jest powiązana z witryną i prawdopodobnie hostuje tylko zmiany dla niej.
Po drugie, utrzymywanie unikalnego folderu wtyczki i nazwy pliku zapobiegnie przypadkowemu nadpisaniu go przez witrynę WordPress wtyczką, która ma ten sam ślimak w repozytorium wtyczek wordpress.org.
Tworzenie wtyczki funkcji niestandardowej WordPress jest łatwe. Wszystko czego potrzebujesz to jeden plik PHP w wp-content/plugins
. Powinieneś jednak najpierw utworzyć nowy folder, ponieważ często potrzebujesz więcej niż jednego pliku do ustrukturyzowania kodu i możesz chcieć dodać pliki dla kodu JavaScript i CSS.
Idąc za naszym przykładem, powiedzmy, że mamy teraz folder wtyczek wp-content/plugins/wp-mayor-custom-functions/wp-mayor-custom-functions.php
i plik główny.
Dodajmy nagłówek do pliku, aby poinformować WordPressa, o co chodzi w naszej wtyczce. Chociaż „nazwa wtyczki” wystarczy, aby technicznie działała, spójrzmy na bardziej zaawansowany przykład:
/** * Plugin Name: WP Mayor Custom Function * Plugin URI: https://wpmayor.com * Description: All the cool features we custom-built for us. * Version: 1.0.0 * Requires at least: 6.2 * Requires PHP: 8.1 * Author: Thomas Maier */
Powinno to już pojawić się w sekcji „Wtyczki” w naszym panelu WordPress.
Teraz możemy szaleć i dodać do naszego pliku aktualny kod PHP.
Wskazówka: gdy nie mam dostępu FTP do witryny lub jestem po prostu leniwy, używam wtyczki Pluginception, aby szybko uruchomić coś, co mogę później wypełnić kodem za pomocą edytora plików wtyczek w panelu WordPress.
Czy powinieneś teraz umieścić cały kod konkretnej witryny w jednej dedykowanej wtyczce funkcji niestandardowej?
To zależy. Kiedy wiem, że niestandardowy kod jest używany w wielu projektach, rozdzielam go na inną wtyczkę. Jednocześnie zbieram w jednej wtyczce kod dedykowany konkretnej witrynie. Im mniej wtyczek, tym mniej repozytoriów kodu muszę utrzymywać.
Brzmi świetnie jak dotąd? Cóż, zarządzając przez ostatnie lata większą firmą zajmującą się wtyczkami i wprowadzając ponad sto zmian w witrynie, zauważyłem, że te niestandardowe wtyczki są nadal bardzo skoncentrowane na programistach. Przyjrzyjmy się zatem innemu podejściu w następnej sekcji.
Korzystanie z niestandardowej wtyczki funkcyjnej dla fragmentów kodu
Przez większość czasu w dużych firmach zajmujących się wtyczkami byłem odpowiedzialny za techniczną stronę naszego sklepu z wtyczkami.
Umieściłem dowolny kod, który nie był specyficzny dla motywu, w pojedynczej wtyczce funkcji niestandardowej. Wszystkie zmiany w poszczególnych wtyczkach i dostosowania, takie jak przekierowanie pustych kart na stronę z cenami, oferty sprzedaży dodatkowej lub oferty z okazji Czarnego Piątku, zostały udokumentowane i rozłożone w różnych plikach o czytelnych nazwach.
Cóż, „udokumentowane” i „czytelne” dla każdego, kto ma dostęp do kodu.
Mimo że zawsze mogłem wprowadzać zmiany lub odpowiadać na pytania na ich temat, czułem, że nie jest to skuteczny i zrównoważony sposób obsługi większości niestandardowych funkcji.
Ponieważ w zarządzanie sklepem i stroną internetową zaangażowanych jest coraz więcej osób, chciałem dać im szansę poznania zmian bez konieczności aktualizowania dedykowanej strony w naszej bazie wiedzy.
Rozwiązaniem było zainstalowanie wtyczki funkcji niestandardowej WordPress, która zarządza wszystkimi lub większością fragmentów kodu w panelu WordPress.
Moją ulubioną jest bezpłatna wtyczka Code Snippets, ale są też inne.
W przypadku fragmentów kodu na pulpicie nawigacyjnym znajduje się dedykowana pozycja menu ze wszystkimi fragmentami kodu.
Teraz każdy z dostępem administratora może zobaczyć zmiany. Używam opisowych nazw dla każdego fragmentu, wykorzystuję pole notatek, aby go szczegółowo opisać i przypisuję tagi do grupowania zmian.
Moje tagi to zazwyczaj nazwa dostosowywanej wtyczki lub motywu oraz sekcja strony, której to dotyczy, np. „WooCommerce” i „Zamówienie”.
Jeśli wybierzesz dobre nazwy i dobrą strukturę, każdy powinien być w stanie znaleźć i zrozumieć poprawki. Włącznie ze mną. Używam tej metody nawet na moich osobistych stronach, ponieważ zapewnia ona duży komfort.
Korzystanie z wtyczki funkcji niestandardowej jest szczególnie przydatne w przypadku fragmentów kodu, których potrzebujesz tylko tymczasowo, na przykład kodu czyszczącego, który należy uruchomić tylko raz na jakiś czas, lub niektórych działań skierowanych do interfejsu użytkownika, takich jak włączenie promocji.
Czy to jest bezpieczne?
Domyślnie WordPress pozwala każdemu z rolą „administratora” edytować pliki wtyczek i motywów w zapleczu. Używanie wtyczki z niestandardowym kodem nie różni się od tego. Zatem stara zasada, aby zachować defensywę i przydzielać każdemu tylko potrzebną rolę, nadal obowiązuje.
Programiści mogą chcieć wiedzieć, że niektóre bardzo wczesne zaczepy w żądaniu strony są niedostępne podczas zarządzania kodem za pomocą wtyczki, ponieważ sama wtyczka musi się najpierw załadować. Jeśli chcesz załadować swój niestandardowy kod przed jakąkolwiek inną wtyczką, sprawdź opcję Musisz użyć wtyczek poniżej.
Niestandardowe funkcje WordPress w wtyczkach Must Use
Tak zwane wtyczki „must use” to szczególny rodzaj wtyczek.
Ponieważ uruchamiają się przed jakąkolwiek inną „normalną” wtyczką, używam ich do włączania lub wyłączania określonych wtyczek dla danej strony. Możesz użyć takiego kodu, aby przyspieszyć pseudo API lub wywołania admin-ajax.php
.
Kolejną cechą wtyczek Must Use jest to, że są one domyślnie włączone i nikt nie może ich wyłączyć ani zmienić za pomocą pulpitu nawigacyjnego WordPress. Dzięki temu idealnie nadają się do przechowywania niezbędnego kodu, do którego nawet administratorzy nie powinni mieć dostępu.
Tworzenie wtyczki mu
Wtyczki Must Use znajdują się w folderze wp-content/mu-plugins
. Ten folder nie istnieje w nowej instalacji WordPress. Jednak niektóre wtyczki lub firmy hostingowe mogą dodawać tutaj treści dynamicznie.
Aby dodać nową wtyczkę do folderu mu-plugin, musisz utworzyć na swoim komputerze plik PHP z nagłówkiem pliku wtyczki, który pokazałem powyżej dla naszej niestandardowej wtyczki. Tym razem nie jest ważne, aby wybrać unikalną nazwę, ponieważ wtyczki Must Use nie są aktualizowane automatycznie.
Gdy będziesz zadowolony z nowej wtyczki funkcji niestandardowych, prześlij ją ręcznie przez FTP do folderu wp-content/mu-plugins
. Utwórz folder mu-plugins
jeśli nie istnieje.
Chociaż nie możesz zmienić wtyczek Must Use za pośrednictwem panelu administracyjnego WordPress, możesz je zobaczyć na liście w sekcji Wtyczki> Must-Use.
W idealnym przypadku wtyczki Must Use to wtyczki jednoplikowe. WordPress nie może ich znaleźć w podfolderach, chociaż możesz odwołać się do dodatkowych plików w głównym pliku PHP. Ale jeśli tworzysz złożoną wtyczkę Must Use, pomyśl o przeniesieniu głównego kodu do zwykłej wtyczki i użyj wtyczki MU tylko do załadowania tego, co jest potrzebne do uruchomienia przed wszystkimi innymi wtyczkami.
Wniosek
Zbadaliśmy różne metody dodawania niestandardowego kodu do WordPressa, od tradycyjnego dodawania kodu do functions.php
motywu, samodzielnych wtyczek i niestandardowych wtyczek funkcji WordPress, po użycie Must Use (wtyczki mu). Każda metoda oferuje własny zestaw zalet i potencjalnych wad, dostosowanych do różnych potrzeb i scenariuszy.
Jak widać, była to dla mnie długa podróż jako programisty i kierownika projektu. Do dziś stosuję wszystkie metody, w zależności od rodzaju zmiany i tego, kto powinien mieć do niej dostęp.
Mam nadzieję, że ten artykuł pomoże wam, moim młodszym i starszym programistom, podjąć własne decyzje dotyczące właściwego sposobu dodania kodu jako wtyczki funkcji niestandardowej w WordPress. Dajcie znać w komentarzach, jeśli coś pominąłem.