สามารถใช้สคริปต์ / ตัวโหลดสไตล์ WP เพื่อเชื่อมสคริปต์สคริปต์และสไตล์เข้ากับส่วนหน้าได้หรือไม่


27

WP มีตัวโหลดจาวาสคริปต์ที่ดีรวมอยู่ใน wp-admin: http://core.trac.wordpress.org/browser/tags/3.0.4/wp-admin/load-scripts.php

และตัวโหลด CSS: http://core.trac.wordpress.org/browser/tags/3.0.4/wp-admin/load-styles.php

ฉันสงสัยว่ามันเป็นไปได้ที่จะใช้พวกเขาในส่วนหน้าเช่นกันไม่เพียง แต่ผู้ดูแลระบบเพราะพวกเขาสามารถเชื่อมสคริปต์ที่เข้าคิวทั้งหมดและเชื่อมต่อกับพวกเขาเป็นไฟล์ gzipped ไฟล์เดียว


สิ่งนี้ไม่ได้มีประสิทธิภาพเพียงแค่ถามว่า"ฉันสามารถใช้คิวสำหรับหน้าเว็บที่ไม่ใช่ผู้ดูแลระบบได้หรือไม่" .. คำตอบคือใช่
t31os

5
@ t31os คำถามคือถ้าคุณสามารถใช้ load-scripts.php และ load-styles เพื่อเชื่อมต่อและ gzipสไตล์และสคริปต์เหมือนกับที่ทำกับผู้ดูแลระบบ ฉันชี้แจงชื่อคำถามให้ชัดเจน
Chris_O

คำตอบ:


12

ตอบช้า

จากรูปลักษณ์โดยย่อ:

คุณต้องใช้

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

จากนั้นข้ามไปที่$GLOBALS['wp_scripts']:

ใช้…

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

…เพื่อยืดเวลา

และจากนั้นใช้

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

เพื่อเพิ่มสคริปต์

หมายเหตุ:

  1. สคริปต์ที่ไม่บีบอัดรับการค้นหาโดย.dev.js(เมื่อSCRIPT_DEBUGมีTRUE)
  2. $wp_stylesเดียวกันดูเหมือนว่าจะเป็นไปได้สำหรับ
  3. แก้ไข: WP 3.5จะเปลี่ยนพฤติกรรมนี้และใช้.jsสำหรับรุ่น "dev" และ ".min.js" เมื่อ ( SCRIPT_DEBUGเป็นTRUE)

(แต่ฉันเดาว่านี่จะใช้ได้เฉพาะเมื่อคุณใช้ปลั๊กอินหรือ mu-plugin)

ยังไม่ผ่านการทดสอบและฉันไม่ต้องดูว่าจะใช้งานได้หรือไม่


ฉันกำลังพยายามทำสิ่งนี้ สิ่งที่ไม่ดีคือ load-scripts.php มีexit()จุดจบในตัวดังนั้นคุณจะไม่สามารถทำอะไรได้ในภายหลัง
Benjamin Intal

คำตอบนี้จริงช่วยฉันจากอาการปวดหัวใหญ่ ถ้าSCRIPT_DEBUGเป็นtrueเช่นนั้นสคริปต์ทั้งหมดจะถูกจัดเรียงเป็นรายบุคคลคล้ายกับส่วนหน้า แต่ถ้าSCRIPT_DEBUGเป็นfalseก็ดูเหมือนว่าจะ enqueue load-scripts.phpสคริปต์พร้อมกันผ่าน
Michael Ecklund

@MichaelEcklund ใช่ "switch" นี้เชื่อมต่อกันอย่างต่อเนื่องหรือส่งไฟล์เดียว นี่คือจากครั้งก่อนแผนที่แหล่งที่มาและเครื่องมือนักพัฒนาในปัจจุบัน
ไกเซอร์

6

นี่เป็นคำถามที่ดีมากและจะเป็นคุณสมบัติที่ยอดเยี่ยมสำหรับ WordPress ในการรวม

คำตอบอื่น ๆ บางคำถามไม่ได้ตอบคำถามหลัก

ฉันสงสัยว่ามันเป็นไปได้ที่จะใช้พวกเขาใน front-end ไม่เพียง แต่ผู้ดูแลระบบเพราะพวกเขาสามารถเชื่อมสคริปต์ที่เข้าคิวทั้งหมดและเชื่อมต่อกับพวกเขาเป็นไฟล์ gzipped ไฟล์เดียว

ไม่ขณะนี้ไม่สามารถใช้ตัวสร้างสคริปต์ในตัวเพื่อเชื่อมต่อ CSS และสคริปต์สำหรับส่วนหน้า

มีการพูดคุยกันเกี่ยวกับเรื่องนี้ใน WP Hackersเมื่อไม่กี่ปีที่ผ่านมาและมีตั๋ว trac สำหรับการปรับปรุงนี้ที่ได้รับการยอมรับ แต่สำหรับการเปิดตัวในอนาคต


3

หากคุณต้องการจัดคิวไฟล์ CSS ที่ส่วนหน้า:

1) ลงทะเบียนสไตล์ผ่าน wp_register_style ($ handle, $ src) 2) Hook wp_enqueue_style ($ handle) ลงในตะขอ wp_print_styles

หากคุณต้องการจัดคิวสคริปต์ที่ส่วนหน้า:

1) ลงทะเบียนสไตล์ผ่าน wp_register_script ($ handle, $ src) 2) Hook wp_enqueue_script ($ handle) ลงในตะขอ wp_head

(หมายเหตุ: ฉันคาดว่าจะได้ตะขอ wp_print_styles สำหรับสิ่งนี้ แต่เห็นได้ชัดว่าเบ็ดนี้ไม่ทำงานตามที่คาดไว้)


0

ฉันมีสคริปต์บางอย่างที่คุณอาจต้องการดู

1. Combine.php - ในหลาย ๆ ธีมของฉันฉันได้ใช้งานสคริปต์นี้ รองรับฟังก์ชั่นที่คล้ายกันและสามารถนำไปวางไว้ในโฟลเดอร์แม่แบบของคุณและทำงานได้อย่างง่ายดาย

2. WP Minify - ปลั๊กอินนี้รองรับการลดขนาดและสามารถใช้งานได้ง่าย

3. W3 Total Cache - เป็นปลั๊กอินประสิทธิภาพที่ทรงพลังมาก นอกจากนี้ยังสนับสนุนการรวมสคริปต์ / css รวมถึงคุณสมบัติอื่น ๆ อีกมากมายเช่นการปิดการโหลดสคริปต์รวมไปยัง CDN

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