Trình tải tập lệnh / kiểu WP có thể được sử dụng để ghép và các tập lệnh và kiểu gzip trong giao diện người dùng không?


27

WP có một trình tải javascript đẹp có trong wp-admin: http://core.trac.wordpress.org/browser/tags/3.0.4/wp-admin/load-scripts.php

và trình tải CSS: http://core.trac.wordpress.org/browser/tags/3.0.4/wp-admin/load-styles.php

Tôi đã tự hỏi liệu có thể sử dụng chúng trong front-end không, không chỉ quản trị viên, bởi vì họ có thể ghép tất cả các tập lệnh bị mê hoặc và phục vụ chúng như một tệp được nén.


Đây không phải là hiệu quả chỉ là hỏi "Tôi có thể sử dụng enqueues cho các trang không phải quản trị viên không?" .. Câu trả lời cho điều đó sẽ là Có.
t31os

5
@ t31os Câu hỏi là nếu bạn có thể sử dụng load-scripts.php và kiểu tải để ghép và gzip các kiểu và tập lệnh giống như chúng được thực hiện cho quản trị viên. Tôi làm rõ tiêu đề của câu hỏi.
Chris_O

Câu trả lời:


12

Câu trả lời muộn

Từ một cái nhìn ngắn gọn:

Bạn sẽ phải sử dụng

  • include( admin_url().'load-scripts.php' );
  • include( admin_url().'script-loader.php' );

Sau đó nhảy vào $GLOBALS['wp_scripts']:

Sử dụng…

$wp_scripts->default_dirs( array_merge( 
     $wp_scripts->default_dirs
    ,array( '/themes/your_theme/js/' ) 
); 

Để mở rộng nó.

Và sau đó sử dụng

$wp_scripts->add( $handle, $path_from_content_dir, false/array( $deps ), $ver ) 

để thêm một tập lệnh.

Ghi chú:

  1. Kịch bản không nén được tìm kiếm bởi .dev.js(khi SCRIPT_DEBUGTRUE).
  2. Điều tương tự dường như là có thể cho $wp_styles.
  3. EDIT: WP 3.5 sẽ thay đổi hành vi này và sử dụng .jscho các phiên bản "dev" và ".min.js" khi ( SCRIPT_DEBUGis TRUE);

(Nhưng tôi đoán điều này sẽ chỉ hoạt động nếu bạn sử dụng plugin hoặc mu-plugin.)

Nó không được thử nghiệm và tôi không thể kiểm tra được nếu nó hoạt động.


Tôi hiện đang cố gắng làm một cái gì đó như thế này. Điều tồi tệ là load-scripts.php có một exit()kết thúc cuối cùng nên bạn không thể làm gì sau đó.
Benjamin Intal

Câu trả lời này thực sự đã cứu tôi khỏi một cơn đau đầu lớn. Nếu SCRIPT_DEBUGtrue, tất cả các tập lệnh được xử lý riêng lẻ giống như trong frontend. Tuy nhiên, nếu SCRIPT_DEBUGfalse, nó dường như mê hoặc các kịch bản đồng thời thông qua load-scripts.php.
Michael Ecklund

@MichaelEcklund Có, "công tắc" này kết hợp hoặc cung cấp các tệp duy nhất. Đây là từ thời trước khi bản đồ nguồn và các công cụ phát triển ngày nay.
kaiser

6

Đây là một câu hỏi rất hay và sẽ là một tính năng tuyệt vời để WordPress đưa vào.

Một số câu trả lời khác không giải quyết câu hỏi chính.

Tôi đã tự hỏi liệu có thể sử dụng chúng trong front-end không, không chỉ quản trị viên, bởi vì họ có thể ghép tất cả các tập lệnh bị mê hoặc và phục vụ chúng như một tệp được nén.

Hiện tại không thể sử dụng trình tải tập lệnh tích hợp để kết hợp css và tập lệnh cho giao diện người dùng.

Đã có một cuộc thảo luận về điều này trên WP Hackers vài năm trước và có một vé trac cho sự cải tiến này đã được chấp nhận nhưng để phát hành trong tương lai.


3

Nếu bạn cần liệt kê một tệp CSS ở mặt trước:

1) Đăng ký kiểu thông qua wp_register_style ($ handle, $ src) 2) Hook wp_enqueue_style ($ handle) vào hook wp_print_ststyle.

Nếu bạn cần liệt kê một kịch bản ở mặt trước:

1) Đăng ký kiểu thông qua wp_register_script ($ handle, $ src) 2) Hook wp_enqueue_script ($ handle) vào hook wp_head.

(Lưu ý: Tôi đã mong đợi hook wp_print_styles cho việc này, nhưng hook này rõ ràng không hoạt động như mong đợi.)


0

Tôi có một vài kịch bản bạn có thể muốn xem xét.

1. Combine.php - Trên một số chủ đề của tôi, tôi đã thực hiện tập lệnh này . Nó hỗ trợ chức năng tương tự và có thể được thả vào thư mục mẫu của bạn và làm việc với tương đối dễ dàng.

2. Giảm thiểu WP - Plugin này hỗ trợ thu nhỏ và rất dễ làm việc.

3. W3 Total Cache - là một plugin hiệu suất rất mạnh. Nó cũng hỗ trợ kết hợp script / css cũng như một số lượng lớn các tính năng khác, ví dụ như tắt các tập lệnh kết hợp vào CDN.

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.