Dlaczego rejestracja i kolejkowanie są ważne?
powinno być na czas - wcześniej niż skrypt / styl jest gotowy do wyświetlenia na stronie, w przeciwnym razie jest za późno;
powinno być warunkowe - w przeciwnym razie ładujesz rzeczy tam, gdzie ich nie potrzebujesz, powodując problemy z wydajnością i funkcjonalnością, w tym celu potrzebujesz środowiska WP załadowanego do późnego etapu.
Trzy etapy procesu
register - wyjaśnia szczegóły WP dotyczące skryptu / stylu i sprawia, że przechowuje te informacje;
enqueue - (często łączone razem z rejestrem w jednym wp_enqueue_*()
wywołaniu) - mówi WP, aby dodało skrypty / styl do kolejki, zgodnie z jej ustawieniami (zależności, ładowanie nagłówka / stopki).
print - dzieje się tak, gdy WP przetwarza kolejkę, próbuje załadować coś specyficznego dla siebie lub gdy jawnie robisz to z wp_print_*()
funkcją.
Struktura frontonu funkcji i haczyków
wp_head()
wp_footer()
wp_footer
- (10)
wp_print_footer_scripts()
Wchodzi znacznie głębiej, ale jest to proste i wystarczająco dobre dla ważnych punktów:
wp_enqueue_scripts
jest najodpowiedniejszym hakiem do rejestrowania i umieszczania w kolejce skryptów i stylów w interfejsie i jest do tego specjalnie przeznaczony;
init
nie ma z tym nic wspólnego, zadziała, ale - wcześniejsze zalecenie Kodeksu, aby używać tylko tego było nieprawidłowe ;
możesz uciec od skryptów kolejkowania (nie stylów) dla stopki w dowolnym momencie przed wp_print_footer_scripts()
wywołaniem;
wp_print_*
haki NIE są odpowiednie dla rejestru / kolejki , są punktami w kodzie, gdy dane wyjściowe już się odbywają. Są odpowiednie do ręcznego / niestandardowego skryptu / wyjścia stylu.
Co z administratorem?
Cóż, funkcjonalność jest jeszcze bardziej złożona, rozbudowana i zagnieżdżona.
na początek wystarczy użyć admin_enqueue_scripts
haka (jest przekazywany $hook_suffix
globalnie dla rzeczy warunkowych ) do wszystkiego, w większości przypadków da sobie radę;
kiedy potrzebujesz czegoś złożonego - przejrzyj admin-header.php
i wykop stamtąd odpowiednie haki.
Co z logowaniem?
Jest określony hak o nazwie login_enqueue_scripts
.
admin_print_scripts-{xxx}
. Znalazłem, żeadmin_print_scripts
został wywołany, ale nie z-{xxx}
np.-edit.php
na przykład. Jak słuszna jest ta odpowiedź z kolejkowaniaadmin_print_scripts-xxx
i co zamiast tego polecisz - załóżmy, że chcę dołączyć skrypty / style do niestandardowej strony dodawania / edycji typu postów (dla metaboksu)*print*
haczyków, chyba że naprawdę wiesz, dlaczego ich potrzebujesz. I ogólnie są do druku , a nie w kolejce .admin_enqueue_scripts
hooks przekazuje$hook_suffix
zmienną, która jest taka sama jak używana w tych dynamicznych hookach.$hook_suffix
wygląda jak post.php na mojej stronie edycji portfela, dlaczego tak jest? Pomyślałem, że to edit.php, jak mogę ustalić, czy edytuję / publikuję portfolio, a nie zwykły post?add_*_page()
funkcji), ale na natywnych ekranach WP mogą być różne rzeczy.