เป็นไปได้ไหมที่จะรวม CSS แบบอินไลน์ในปลั๊กอิน?


21

โดยปกติในปลั๊กอินฉันจะเพิ่มสไตล์โดยใช้ wp_enqueue_style อย่างไรก็ตามขณะนี้ฉันกำลังสร้างปลั๊กอินที่ต้องการเพียงไม่กี่บรรทัดของ CSS และฉันสงสัยว่ามันอาจจะดีกว่าที่จะให้บริการรูปแบบอินไลน์เพื่อบันทึกการร้องขอ เห็นได้ชัดว่ามีข้อดีหลายประการในการใช้ wp_enqueue_style แต่พวกเขามีค่าต่อคำขอพิเศษสำหรับ CSS ชิ้นเล็ก ๆ หรือไม่ มีการปฏิบัติที่ดีที่สุดในพื้นที่นี้หรือไม่?

คำตอบ:


14

TL; DR; Enqueue

การใช้สไตล์ชีทภายนอก

  • PRO:สไตล์ทั้งหมดของคุณอยู่ในจุดเดียว
  • PRO:ลดการเข้ารหัสหน้าเว็บ
  • PRO:ง่ายต่อการบำรุงรักษาปลั๊กอิน
  • PRO:สามารถใช้ hooks เพื่อเปลี่ยนตำแหน่งของไฟล์
  • PRO:สามารถใช้ hooks เพื่อทำการคลายไฟล์
  • PRO:สามารถใช้สไตล์ย่อขนาดได้โดยอัตโนมัติ
  • CON:อาจเพิ่มคำขอ HTTP พิเศษ (สามารถเอาชนะได้)

ใช้รูปแบบอินไลน์

  • PRO:สามารถดูสไตล์ที่นำไปใช้โดยตรง
  • PRO:ไม่มีการร้องขอ HTTP เพิ่มเติม
  • CON:ไม่สามารถใช้ hooks เพื่อเปลี่ยนสไตล์
  • CON:ไม่สามารถใช้ hooks เพื่อคลายรูปแบบ
  • CON:ไม่สามารถย่อขนาดสไตล์ได้เลย
  • CON: ต้องการ ! สำคัญในการลบล้างสไตล์

โดยปกติฉันจะบอกว่า: แน่นอนถ้าคุณเป็นคนเดียวที่ใช้มันไปข้างหน้าและทำมันแบบอินไลน์ แต่คุณกำลังพูดถึงปลั๊กอินซึ่งหมายความว่ารหัสจะเป็นสาธารณะดังนั้นจุดมุ่งหมายสำหรับการขยาย ตอนนี้คุณมีสไตล์ไม่กี่บรรทัดเท่านั้น:

  • CON:จะเกิดอะไรขึ้นถ้าคนจำนวนน้อยนั้นมีมากขึ้น?
  • CON:จะเกิดอะไรขึ้นถ้ามีคนขยายปลั๊กอินของคุณ
  • CON:จะเกิดอะไรขึ้นถ้ามีคนต้องการแก้ไข
  • CON:จะเกิดอะไรขึ้นถ้ามีคนค้นหาไฟล์ css?
  • CON:จะเกิดอะไรขึ้นถ้ามีคนต้องการลดขนาดมันโดยอัตโนมัติ

ดังนั้นเข้าคิว (โดยเฉพาะอย่างยิ่งเงื่อนไขเฉพาะในกรณีที่ปลั๊กอินต้องการมัน.) เช่นเดียวกับ JavaScript (แต่ควรรวมไว้ในส่วนท้ายถ้าเป็นไปได้)


จะใช้รูปแบบอินไลน์กับแบ็กเอนด์ได้หรือไม่?
shea

@bungeshea หากมีใครบางคนกำลังจะเปลี่ยนปลั๊กอินของพวกเขาพวกเขาอาจต้องการเปลี่ยนแบ็กเอนด์ด้วยเช่นกัน;) เพียงแค่ให้แน่ใจว่าคุณวางสคริปต์เฉพาะตอนที่แบ็กเอนด์เท่านั้น ตัวอย่างเช่น: function _your_enqueue( $hook )สามารถทดสอบ $ hook เพื่อดูว่าหน้าตัวเลือกของคุณหรือไม่ หรือคุณสามารถใช้current_screen()สำหรับคุณสมบัติที่ง่ายกว่า สิ่งนี้คือคุณได้รับอนุญาตให้ทำเช่นนี้ได้ แต่การใช้งานทั่วไปคือปลั๊กอินประกอบด้วยไฟล์. php สำหรับรหัสเซิร์ฟเวอร์และอาจมีหรือไม่มีไฟล์รูปภาพ. js และ. css
Derk-Jan

1
คุณทราบว่าคำขอ http พิเศษสามารถเอาชนะได้ - คุณสามารถชี้แจงเรื่องนี้ได้หรือไม่?
ดัสติน

2
คุณทำไม่ได้ แต่ผู้ใช้ปลั๊กอินสามารถ มีปลั๊กอินและฟังก์ชั่นหลายอย่างที่เขียนไว้ก่อนที่จะมีการแสดงผลหน้ารับรูปแบบที่จัดคิวทั้งหมดและเพิ่มลงในไฟล์แบบย่อและรวม ไม่ว่าคุณจะเพิ่มไฟล์ CSS กี่ไฟล์ผู้ดูจะเห็นเพียงไฟล์เดียว เหมือนกันสำหรับจาวาสคริปต์ อย่างไรก็ตามนี่เป็นกรณีของคุณไม่ใช่ 'ปัญหา' มันเป็นการปรับให้เหมาะสมที่ไม่จำเป็นและ imho คำร้องขอ HTTP เพิ่มเติมนั้นสั้นเกินไปสำหรับ PRO ทั้งหมด
Derk-Jan

1
เกี่ยวกับประโยคสุดท้าย - สไตล์ AFAIK ควรส่งออกในส่วนหัวไม่ใช่ส่วนท้าย
Mark Kaplun

2

นี่เป็นคำตอบที่ยากและฉันไม่แน่ใจว่ามีคำตอบอย่างเป็นทางการหรือไม่

ฉันเข้าใจความรู้สึกเกี่ยวกับการบันทึกคำขอ แต่สไตล์อินไลน์ค่อนข้างชนะเสมอ ชุดรูปแบบหรือผู้ใช้จะมีเวลาในการแก้ไข CSS ของคุณยาก

โดยที่ในใจฉันคิดว่าฉันจะทำในปลั๊กอินที่เผยแพร่สู่สาธารณะ ...

  1. หาก CSS มีความสำคัญอย่างยิ่งต่อการทำงานของปลั๊กอินเช่นเดียวกับกรณีที่มีสไลด์โชว์

  2. หรือถ้าฉันรวมตัวกรองในปลั๊กอินที่อนุญาตให้ CSS แบบอินไลน์สามารถเปลี่ยนแปลงหรือลบออกได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.