Có bao giờ ổn khi đưa CSS nội tuyến vào plugin không?


21

Thông thường trong một plugin tôi sẽ thêm các kiểu bằng wp_enqueue_style. Tuy nhiên, tôi hiện đang tạo một plugin chỉ cần một vài dòng CSS và tôi tự hỏi liệu có thể tốt hơn để phục vụ các kiểu nội tuyến để lưu yêu cầu hay không. Rõ ràng có nhiều lợi thế khi sử dụng wp_enqueue_style, nhưng chúng có đáng để yêu cầu thêm cho một mảnh CSS nhỏ như vậy không? Có bất kỳ 'thực hành tốt nhất' được chấp nhận trong lĩnh vực này?

Câu trả lời:


14

TL; DR; Enqueue

Sử dụng biểu định kiểu bên ngoài

  • PRO: Tất cả các phong cách của bạn là ở một nơi.
  • PRO: Giảm mã hóa trang web.
  • PRO: Dễ dàng hơn để duy trì plugin.
  • PRO: Có thể sử dụng hook để thay đổi vị trí của tập tin.
  • PRO: Có thể sử dụng hook để unqueue file.
  • PRO: Có thể sử dụng các kiểu minify tự động.
  • CON: Có thể thêm yêu cầu HTTP bổ sung (có thể khắc phục).

Sử dụng kiểu nội tuyến

  • PRO: Có thể thấy trực tiếp phong cách áp dụng.
  • PRO: Không có thêm yêu cầu HTTP.
  • CON: Không thể sử dụng móc để thay đổi kiểu.
  • CON: Không thể sử dụng móc để bỏ phong cách.
  • CON: Không thể giảm thiểu các kiểu.
  • CON: Cần ! Quan trọng để ghi đè lên phong cách

Thông thường tôi sẽ nói: Chắc chắn, nếu bạn là người duy nhất sử dụng nó, hãy tiếp tục và thực hiện nội tuyến. Nhưng bạn đang nói về một plugin có nghĩa là mã sẽ được công khai vì vậy hãy nhắm đến khả năng mở rộng. Ngay bây giờ bạn chỉ có một vài dòng kiểu dáng:

  • CON: Điều gì sẽ xảy ra nếu số đó trở nên nhiều hơn?
  • CON: Nếu ai đó mở rộng plugin của bạn thì sao?
  • CON: Nếu ai đó muốn thay đổi nó thì sao?
  • CON: Nếu ai đó tìm kiếm nó trong tập tin css thì sao?
  • CON: Điều gì xảy ra nếu ai đó muốn thu nhỏ nó tự động?

Do đó, enqueue. (Tốt nhất là chỉ có điều kiện nếu plugin cần nó.) Điều tương tự áp dụng cho JavaScript . (Nhưng điều đó nên được bao gồm trong phần chân trang nếu có thể.)


Có thể sử dụng các kiểu nội tuyến trên phụ trợ không?
shea

@bungeshea Nếu ai đó sẽ thay đổi plugin của bạn, họ có thể muốn thay đổi phụ trợ quá đúng;) Chỉ cần đảm bảo rằng bạn chỉ ghi lại tập lệnh khi vào phần phụ trợ. Ví dụ: function _your_enqueue( $hook )có thể kiểm tra $ hook để xem nếu trên trang tùy chọn của bạn. Ngoài ra, bạn có thể sử dụng current_screen()cho các thuộc tính đơn giản hơn . Vấn đề là, bạn được phép làm điều này, nhưng sử dụng chung là một plugin bao gồm một tệp .php cho mã máy chủ và có thể có hoặc không có các tệp hình ảnh, .js và .css.
Derk-

1
Bạn lưu ý rằng yêu cầu http bổ sung có thể được khắc phục - bạn có thể làm rõ điều này không?
Dustin

2
Bạn không thể, nhưng người dùng plugin có thể. Có một số bổ trợ và chức năng được ghi vào, ngay trước khi trang được xuất ra, hãy lấy TẤT CẢ các kiểu được liệt kê và thêm chúng vào một tệp kết hợp, rút ​​gọn. Cho dù bạn thêm bao nhiêu tệp CSS, người xem sẽ chỉ nhìn thấy một. Tương tự cho javascript. Tuy nhiên, đây là trường hợp của bạn không phải là 'vấn đề' của bạn. Đó là tối ưu hóa không cần thiết và imho, yêu cầu HTTP bổ sung hơi thiếu so với tất cả các PRO.
Derk-

1
Về câu cuối cùng - Các kiểu AFAIK phải được xuất ra trong tiêu đề chứ không phải chân trang
Mark Kaplun

2

Điều này thật khó trả lời và tôi thực sự không chắc chắn nếu có câu trả lời chính thức.

Tôi hiểu tình cảm về việc lưu một yêu cầu nhưng phong cách nội tuyến khá nhiều luôn luôn chiến thắng. Chủ đề hoặc người dùng cuối sẽ gặp khó khăn khi thay đổi CSS của bạn.

Với ý nghĩ đó, tôi nghĩ rằng tôi sẽ làm điều này trong một plugin được phát hành công khai ...

  1. nếu CSS cực kỳ quan trọng đối với chức năng của plugin, chẳng hạn như trường hợp trình chiếu, chẳng hạn.

  2. Hoặc, nếu tôi cũng bao gồm một bộ lọc trong plugin cho phép CSS nội tuyến bị thay đổi hoặc xóa.

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.