WordPress add_filter vs funkcje add_action, podstawy.

Opublikowany: 2021-08-24

Ujawnienie: Ten post zawiera linki partnerskie. Mogę otrzymać odszkodowanie, gdy klikniesz linki do produktów w tym poście. Aby uzyskać wyjaśnienie moich zasad reklamowych, odwiedź tę stronę . Dziękuje za przeczytanie!

Zawartość

  • Czym są funkcje add_filter vs add_action w WordPressie?
  • Czym dokładnie jest „hak” w WordPressie?
  • Jaka jest różnica między hookami, filtrami i akcjami?
  • Jaka jest różnica między do_action a add_action w WordPressie?
  • Jaka jest różnica między hakami akcji a hakami filtrów?
  • Co robią filtry w WordPressie?
  • Co robią akcje w WordPressie?
  • Czy mogę użyć add_action przed add_filter podczas ulepszania wtyczki WordPress?
  • Jaka jest więc prawdziwa różnica między hookami add_filter a hookami add_action w WordPressie?

Czym są funkcje add_filter vs add_action w WordPressie?

Czy kiedykolwiek dostałeś wtyczkę lub motyw, który byłby idealny, gdybyś mógł po prostu wprowadzić do niego jedną lub dwie poprawki? Jednak te dwie poprawki będą wymagały dodania odrobiny kodu, może nawet krótkiego kodu.

Ale zanim to zrobisz, musisz zrozumieć podstawowe koncepcje add_filter vs add_action, różnice i sposób ich działania w WordPressie, zanim zmienisz prawie idealnie zakodowaną wtyczkę lub motyw w kompletny bałagan.

„add_action” w WordPressie służy do tworzenia „haka” wyzwalacza. Kiedy coś się stanie, zrób coś innego.

„add_filter” służy do „zaczepiania” danych, tj. zmiany/zastąpienia. Na przykład, gdzie jest [jakiś-kod], zmień go na inny-rozszerzony-kod.

„Hak” to „funkcja” lub „metoda” dla określonego filtra lub akcji. Więcej o „hakach” poniżej.

WordPress oferuje zaczepy filtrów, aby umożliwić wtyczkom modyfikowanie różnych typów danych wewnętrznych w czasie jego działania. Wtyczka może modyfikować dane, wiążąc wywołanie zwrotne z zaczepem filtra. Gdy filtr zostanie później zastosowany, każde powiązane wywołanie zwrotne jest uruchamiane w kolejności priorytetu i daje możliwość zmodyfikowania wartości przez zwrócenie nowej wartości.

  • Akcje to te funkcje PHP, które wykonują dane wyjściowe.
  • Filtry to te funkcje PHP, które zwracają dane wyjściowe.

Możemy rozszerzyć dowolną wtyczkę korzystającą z akcji i filtrów bez modyfikowania ich kodu. Dodając filtry i akcje we własnym motywie lub wtyczce. Omówmy więcej o tym, jak działają w WordPress.

Czym dokładnie jest „hak” w WordPressie?

Haki to sposób, w jaki jeden fragment kodu może wchodzić w interakcje/modyfikować inny fragment kodu w określonych, predefiniowanych miejscach. Stanowią one podstawę interakcji wtyczek i motywów z WordPress Core, ale są również szeroko wykorzystywane przez sam WordPress Core.

Istnieją dwa rodzaje haczyków: Akcje i Filtry. Aby użyć którejś z nich, musisz napisać niestandardową funkcję znaną jako „ Callback ”, a następnie zarejestrować ją za pomocą haka WordPress dla określonej akcji lub filtra. Źródło : WordPress.org .

Jaka jest różnica między hookami, filtrami i akcjami?

Jak wspomniano powyżej, „haki” to w zasadzie zbiorcza nazwa filtrów i akcji. Oba mają na celu zmianę normalnego zachowania funkcji.

Mówiąc z programowego punktu widzenia, nie ma dużej różnicy, co widać po tym, że w kodzie źródłowym WordPressa dodanie „akcji” jest tym samym, co dodanie „filtra”.

Różnica polega na tym, jak są używane. Używasz „akcji”, aby całkowicie zmienić zachowanie funkcji lub dodać coś do istniejącej funkcji.

Używasz „filtra”, aby zmienić wynik funkcji lub zmiennej.

Jaka jest różnica między do_action a add_action w WordPressie?

„Do_action” rejestruje „action hook”, podczas gdy „add_action” dodaje funkcję zwrotną do zarejestrowanego hooka.

Jaka jest różnica między hakami akcji a hakami filtrów?

Haki akcji

„Haki działań” są przeznaczone do użycia, gdy rdzeń WordPressa lub jakaś wtyczka lub motyw daje możliwość wstawienia kodu w określonym miejscu w celu wykonania określonego zadania lub „akcji”.

Filtruj haki

„Haki filtrów” zachowują się bardzo podobnie do „haczyków akcji”, ale ich przeznaczeniem jest otrzymanie wartości i potencjalnie zwrócenie zmodyfikowanej wersji wartości.

„Hak filtra” może być również użyty tak samo jak „Hak akcji”, tj. do modyfikacji zmiennej globalnej lub wygenerowania kodu HTML, zakładając, że to właśnie musisz zrobić, gdy zostanie wywołany zaczep.

Co robią filtry w WordPressie?

„Filtr” pobiera otrzymane informacje, modyfikuje je i zwraca. Innymi słowy, coś filtruje i przekazuje z powrotem do haka w celu dalszego wykorzystania.

Dlatego filtr służy do modyfikacji czegoś w określony sposób, tak aby modyfikacja była później wykorzystana przez kod.

Co robią akcje w WordPressie?

„Działanie” pobiera otrzymane informacje, wykonuje wszelkie instrukcje podane w swoim kodzie, a następnie nic nie zwraca. Zasadniczo działa na coś, a następnie kończy działanie, nie zwracając nic z powrotem do haka wywołującego.

Akcja przerywa przepływ kodu, aby coś zrobić, a następnie powraca do normalnego przepływu bez modyfikowania czegokolwiek.

Tak więc, gdzie „filtry” to zestawy parametrów lub instrukcji, „działania” to wykonanie instrukcji.

Czy mogę użyć add_action przed add_filter podczas ulepszania wtyczki WordPress?

Zasadniczo nie ma znaczenia, w jakiej kolejności używasz add_action() i add_filter().

Liczy się kolejność wywoływania odpowiednich funkcji do_action() i apply_filters().

Jeśli więc „apply_filters” na przykład („wp_insert_post_data”) zostanie uruchomiony przed „do_action” ('save_post'), to nie zadziała. Będziesz musiał wymyślić inny sposób na uzyskanie pożądanych rezultatów.

Jaka jest więc prawdziwa różnica między hookami add_filter a hookami add_action w WordPressie?

W rzeczywistości „haki filtrów” są w zasadzie nadzbiorem „haków akcji”. „Haki filtrów” mogą zrobić wszystko, co potrafią „haki akcji”, a nawet więcej. Chociaż programista nie jest odpowiedzialny za zwracanie wartości za pomocą „haka akcji”, co robi z „hakiem filtra”.

„Haki filtrujące” zasadniczo definiują parametry zadania, podczas gdy „haki akcji” wykonują zadania. Aby uzyskać więcej informacji na temat różnic między hakami „add_filter” a hakami „add_action”, zapoznaj się z oficjalną dokumentacją WordPress w sekcji dla programistów na WordPress.org.