wp_enqueue_scripts, wp_register_scripts, wp_print_scripts: tôi đang bối rối


8
  • Tôi đã đọc một chút về chủ đề này, nhưng tôi càng đọc - tôi càng bối rối.

  • Ai đó có thể giải thích cho tôi ngắn gọn về sự khác biệt chính xác giữa wp_enqueue_scripts, wp_register_scriptswp_print_scripts?

  • Ví dụ: tôi có mã sau trong hàm.php của mình - và nó hoạt động, nhưng tôi không hiểu tại sao tôi không thể sử dụng wp_print_scriptscho các bảng định kiểu, trong khi mã vẫn hoạt động nếu tôi sử dụng wp_enqueue_scriptscho các tệp javascript:

    add_action('wp_print_scripts', 'add_my_js');
    function add_my_js(){
        if(!is_admin()){
            wp_enqueue_script('default',  get_bloginfo('stylesheet_directory').'/js/default.js', array('jquery'));
        }
    }
    
    add_action('wp_enqueue_scripts', 'add_my_stylesheet');
    function add_my_stylesheet() {
        wp_register_style('default', get_bloginfo( 'stylesheet_url'));
        wp_enqueue_style( 'default');
    }
    

Câu trả lời:


9

wp_print_scriptslà hành động chạy khi tập lệnh được xuất ra mẫu. wp_register_scriptwp_enqueue_scriptlà các chức năng để đăng ký / liệt kê các kịch bản được xuất ra khi wp_print_scriptschạy.

bạn không thể đăng ký hoặc liệt kê các kiểu trong wp_print_scriptshook hành động vì các kiểu đã được xuất trong wp_print_styleshook, chạy trước đó wp_print_scripts.

tham khảo tham chiếu hành động để xem thứ tự mọi thứ được thực thi trong một yêu cầu:

22. wp_head
23. wp_enqueue_scripts
24. wp_print_styles
25. wp_print_scripts

Vậy thì, sự khác biệt giữa wp_enqueue_script và wp_register_script là gì?
Jeff K.

3
wp_register_script đăng ký tập lệnh với WordPress, nhưng không thêm nó vào hàng đợi. Nếu bạn cũng không gọi wp_enqueue_script, tập lệnh sẽ không xuất hiện. Mục đích của việc này là để cho phép bạn đăng ký tập lệnh của mình một lần, sau đó có điều kiện để ghi lại nó ở một nơi khác trong mã của bạn. Điều này hữu ích cho các nhà phát triển plugin, nơi một tập lệnh có thể được xử lý ở nhiều nơi trong mã. Bạn cũng có thể chỉ cần liệt kê kịch bản của bạn trực tiếp mà không cần đăng ký nó.
Milo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.