Tại sao đăng ký và xếp hàng đúng vấn đề
cần kịp thời - sớm hơn kịch bản / kiểu sẽ được xuất ra trang, nếu không thì quá muộn;
nó phải có điều kiện - nếu không bạn đang tải những thứ mà bạn không cần nó và gây ra các vấn đề về hiệu năng và chức năng, vì điều này bạn cần môi trường WP được tải đến giai đoạn cuối.
Ba giai đoạn của quá trình
đăng ký - điều này giải thích chi tiết WP về script / style và làm cho nó lưu trữ thông tin đó;
enqueue - (thường được gộp chung với đăng ký trong một wp_enqueue_*()
cuộc gọi) - điều này cho WP biết để thêm tập lệnh / kiểu vào hàng đợi, theo cài đặt của nó (phụ thuộc, tải tiêu đề / chân trang).
in - điều này xảy ra khi WP xử lý hàng đợi, cố gắng tải một cái gì đó cụ thể cho chính nó hoặc khi bạn thực hiện nó với wp_print_*()
chức năng.
Cấu trúc mặt trước của các chức năng và móc
wp_head()
wp_footer()
wp_footer
- (10)
wp_print_footer_scripts()
Nó đi sâu hơn nhiều, nhưng điều này đơn giản và đủ tốt cho những điểm quan trọng:
wp_enqueue_scripts
là móc thích hợp nhất để đăng ký và xếp hàng các tập lệnh và kiểu ở giao diện người dùng và nó đặc biệt dành cho điều đó;
init
không có gì để làm với điều này, nó sẽ hoạt động, nhưng - khuyến nghị trước đây của Codex chỉ sử dụng nó là không chính xác ;
bạn có thể thoát khỏi các tập lệnh xếp hàng (không phải kiểu) cho chân trang tại bất kỳ thời điểm nào trước khi wp_print_footer_scripts()
gọi;
wp_print_*
hook KHÔNG thích hợp cho đăng ký / hàng đợi , chúng là các điểm trong mã khi đầu ra đã xảy ra. Chúng thích hợp cho đầu ra thủ công / tùy chỉnh tập lệnh / kiểu.
Còn quản trị viên thì sao?
Vâng, các chức năng ở đó thậm chí còn phức tạp hơn, công phu và lồng nhau.
đối với người mới bắt đầu chỉ cần sử dụng admin_enqueue_scripts
hook (nó được truyền $hook_suffix
toàn cầu cho các công cụ có điều kiện ) cho mọi thứ, nó sẽ làm tốt cho hầu hết các trường hợp;
khi bạn cần một cái gì đó phức tạp - nhìn qua admin-header.php
và đào từ đó để có móc phù hợp.
Đăng nhập thì sao?
Có một cái móc cụ thể được đặt tên login_enqueue_scripts
.
admin_print_scripts-{xxx}
. Tôi thấy rằngadmin_print_scripts
đã được gọi nhưng không phải với-{xxx}
ví dụ.-edit.php
ví dụ. Câu trả lời đúng như thế nào về sự mêadmin_print_scripts-xxx
hoặc và những gì bạn sẽ đề xuất thay vào đó - giả sử tôi muốn bao gồm các tập lệnh / kiểu trong một trang thêm / chỉnh sửa loại bài đăng tùy chỉnh (cho metabox)