Чому реєстрація та черга належним чином має значення
це має бути вчасно - раніше, ніж сценарій / стиль готовий для виведення на сторінку, інакше вже пізно;
це повинно бути умовно - інакше ви завантажуєте речі там, де вам це не потрібно, і спричиняєте проблеми з продуктивністю та функціональністю, для цього вам потрібне середовище 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
і що ви рекомендуєте замість цього - припустимо, я хочу включити сценарії / стилі на сторінку користувальницького типу додавання / редагування (для метабокса)