Nie widzę wielkich korzyści z tej praktyki z następujących powodów:
Twoje funkcje oddzwaniania nie są wywoływane podczas rejestracji
Funkcje add_action
i add_filter
tylko dodają wpis do zmiennej globalnej, $wp_filter
która przechowuje wszystkie filtry i akcje. Zobacz źródło . Nie wywołuje twojej funkcji. Twój kod będzie działać tylko wtedy, gdy do_action
i apply_filters
nazywane są (z odpowiednią nazwą haka), co zdarza się bardzo późno w miejscu, gdzie te haki powinny być.
Można powiedzieć, że spowoduje to zwiększenie globalnej zmiennej $wp_filter
=> więcej wymaganej pamięci. Ale myślę, że utworzenie nowej funkcji ma ten sam problem.
Kod organizacyjny
Umieszczenie wszystkiego w jednej funkcji zmusza do zapamiętania wszystkich haków w każdym pliku w kompozycji / wtyczce. Nie zrobiłbyś czegoś takiego:
- in
header.php
: dodawanie haków i funkcji zwrotnych dla zdarzeń w nagłówku (np. menu, rejestracja skryptu)
- in
content.php
: dodaj zaczepy i funkcje zwrotne do filtrowania zawartości
admin-menu.php
: dodaj zaczepy i funkcje zwrotne, aby dodać menu administratora
(załóż, że te pliki są umieszczone w twoim motywie / wtyczce)
Zamiast tego musisz:
- umieścić tylko w funkcji callback
header.php
, content.php
,admin-menu.php
- i umieść wszystkie haki w oddzielnej funkcji w innym pliku
=> To sprawi, że będziesz ciężko wiedzieć, co się stanie, gdy spojrzysz na zawartość header.php
pliku. Musisz szukać, aby dowiedzieć się, kiedy te wywołania zwrotne są uruchamiane.
I pomyśl o sytuacji, gdy masz wiele klas w swoim motywie / wtyczce. Czy umieścisz wszystkie haki wszystkich klas w jednym miejscu? Czy może każda klasa ma funkcję otoki, która przechowuje wszystkie haki? To jest zbyteczne!
Powyżej tego powodu myślę, że to osobisty styl :). Widzę niektóre frameworki, takie jak Hybrid, robi to, co powiedziałeś. Czasami trudno mi kopać w tych ramach!
wp_loaded
i informacje o MS.