Чому реєстрація та черга належним чином має значення
це має бути вчасно - раніше, ніж сценарій / стиль готовий для виведення на сторінку, інакше вже пізно;
це повинно бути умовно - інакше ви завантажуєте речі там, де вам це не потрібно, і спричиняєте проблеми з продуктивністю та функціональністю, для цього вам потрібне середовище WP, завантажене до пізньої стадії.
Три стадії процесу
зареєструвати - це пояснює деталі WP про сценарій / стиль та змушує зберігати цю інформацію;
enqueue - (часто згуртоване разом з реєстром в одному wp_enqueue_*()дзвінку) - це дозволяє WP додати скрипти / стиль до черги, відповідно до її налаштувань (залежності, завантаження колонтитулу / колонтитулу).
print - це відбувається, коли WP обробляє чергу, намагається завантажити щось конкретне для себе або коли ви явно це робите з wp_print_*()функцією.
Фасадна структура функцій і гачків
wp_head()
wp_footer()
wp_footer
- (10)
wp_print_footer_scripts()
Це йде набагато глибше, але це дуже просто і досить добре для важливих моментів:
wp_enqueue_scriptsє найбільш підходящим гаком для реєстрації та встановлення черги сценаріїв та стилів на передній частині, і саме там спеціально для цього;
initне має нічого спільного з цим, воно буде працювати, але - минула рекомендація Codex використовувати лише це було неправильно ;
ви можете піти зі скриптів черги (не стилів) для колонтитулу в будь-який момент перед wp_print_footer_scripts()викликом;
wp_print_*гачки НЕ підходять для реєстрації / черги , вони є пунктами коду, коли вихід вже відбувається. Вони підходять для виводу вручну / користувацького сценарію / стилю.
А що з адміністратором?
Ну, а функціонал там ще складніший, складніший і вкладений.
для початківців просто використовуйте admin_enqueue_scriptsгачок (він стає $hook_suffixглобальним для умовних речей ) для всього, це буде добре для більшості випадків;
коли вам потрібно щось складне - перегляньте admin-header.phpі звідти викопайте відповідні гачки.
Що з логіном?
Існує конкретний гак з назвою login_enqueue_scripts.
admin_print_scripts-{xxx}. Я виявив, щоadmin_print_scriptsназивався, але не з-{xxx}напр.-edit.phpнаприклад. Наскільки правильна відповідь на запитанняadmin_print_scripts-xxxі що ви рекомендуєте замість цього - припустимо, я хочу включити сценарії / стилі на сторінку користувальницького типу додавання / редагування (для метабокса)