การ จำกัด ปลั๊กอินเพียงแค่โหลด CSS และ JS ในหน้าที่เลือก?


9

ฉันต้องการให้ปลั๊กอิน จำกัด การโหลด CSS stylesheets และไฟล์ JavaScript JS ไปยังหน้าเหล่านั้นที่พวกเขาต้องการเท่านั้น

ตัวอย่างสำหรับคำถามของฉันคือปลั๊กอินแบบฟอร์มติดต่อ 7ที่ฉันเคยสร้างแบบฟอร์มในหน้าเดียวในเว็บไซต์ของฉัน (หน้า " ติดต่อฉัน ") อย่างไรก็ตามจะเพิ่มบรรทัดต่อไปนี้ในหน้า / โพสต์ทุกหน้าบนเว็บไซต์:

<link rel='stylesheet' id='contact-form-7-css'  href='http://www.r-statistics.com/wp-content/plugins/contact-form-7/styles.css?ver=2.3.1' type='text/css' media='all' /> 

<script type='text/javascript' src='http://www.r-statistics.com/wp-content/plugins/contact-form-7/scripts.js?ver=2.3.1'></script> 

สิ่งนี้ทำให้ฉันสงสัยว่าปลั๊กอินนี้ทำให้เวลาในการโหลดเว็บไซต์ของฉันลดลงเนื่องจากส่วนขยายที่ฉันสนใจมีเพียงหน้าเดียวในไซต์

ดังนั้นคำถามของฉันคือฉันจะลบบรรทัดพิเศษเหล่านี้ออกจากทุกหน้ายกเว้นหน้า "ติดต่อฉัน" แต่ไม่มีการปิดใช้งานปลั๊กอินได้อย่างไร

คำตอบ:


9

สไตล์และสคริปต์มักจะถูกตั้งค่าโดยฟังก์ชั่นwp_enqueue_script()และwp_enqueue_style()จะต้องเชื่อมโยงกับเบ็ดการกระทำเฉพาะเพื่อที่จะทำงาน ฉันมองเข้าไปในแบบฟอร์มการติดต่อ 7 และดูเหมือนว่ามันใช้แท็กการกระทำwpcf7_enqueue_scriptsและwpcf7_enqueue_stylesเพื่อเพิ่มลงในwp_print_scriptsและwp_print_stylesขอ

ดังนั้นสิ่งที่คุณต้องทำคือเลิกขอสคริปต์และสไตล์จากทุกหน้ายกเว้นหน้าผู้ติดต่อของคุณ การwp_headดำเนินการเริ่มต้นก่อนที่สคริปต์และการกระทำของสไตล์จึงจะต้องเพิ่มสิ่งนี้ลงในไฟล์ functions.php ของธีมของคุณ:

function remove_wpcf7_extras() {
    remove_action('wp_print_scripts', 'wpcf7_enqueue_scripts');
    remove_action('wp_print_styles', 'wpcf7_enqueue_styles');
}

if( ! is_page('contact me') ) {
    add_action('wp_head', 'remove_wpcf7_extras');
}

is_page ()ฟังก์ชั่นจะกลับมาtrueเมื่อคุณอยู่ในหน้าติดต่อ (สมมติว่าชื่อเป็น "ติดต่อฉัน") ... คุณยังสามารถใช้กระสุนหน้าและบัตรประจำตัวหน้าสำหรับตัวกรอง ในหน้าอื่น ๆ ทั้งหมดif()เงื่อนไขจะเพิ่มฟังก์ชั่นการลบสคริปต์ / สไตล์ไปยังการwp_headดำเนินการซึ่งเริ่มทำงานก่อนหน้าwp_print_scriptsและwp_print_stylesการดำเนินการ

การดำเนินการนี้ควรลบรหัสเพิ่มเติมจากหน้าเว็บของคุณและคุณจะไม่ต้องปิดการใช้งานปลั๊กอินหรือแก้ไขไฟล์หลักใด ๆ ฟังก์ชั่นและรหัสที่ฉันได้ระบุไว้ข้างต้นจะไม่ทำให้ธีมของคุณแตกหากคุณลบแบบฟอร์มการติดต่อ 7 ในอนาคตเช่นกัน ... ดังนั้นไม่จำเป็นต้องกังวลเกี่ยวกับความเข้ากันได้ของการอัพเกรดในอนาคต


สวัสดี EAMann ทางออกที่ดี - ขอบคุณ! คุณคิดว่าวิธีการนี้สามารถใส่ลงในปลั๊กอินที่ตรวจสอบว่ามีการใช้ hooks แบบใดและอนุญาตให้ใครบางคนปิดการทำงานของพวกเขาตามตำแหน่งของหน้าเว็บ?
Tal Galili

น่าเสียดายที่มีตะขอจำนวนมากที่ใช้แบบไดนามิกภายใน WordPress ดังนั้นคุณจึงไม่สามารถตรวจจับตะขอที่ใช้อยู่ได้อย่างน่าเชื่อถือ แต่คุณอาจจับพวกมันได้ด้วยวิธีนี้
EAMann

เย็น. คุณเพิ่งให้ความคิดกับฉันสำหรับคำถามใหม่: wordpress.stackexchange.com/questions/698/…
Tal Galili

เพื่อให้คุณรู้คุณได้ให้ฉันความคิดที่จะเริ่มต้นการพัฒนาปลั๊กอินนี้ :-)
EAMann

3
@EAMann และ @Tal Galili - ในความเป็นจริงคุณสามารถจับตะขอทั้งหมดได้แม้กระทั่งตะขอที่ใช้พลังallดูwordpress.stackexchange.com/questions/307
MikeSchinkel
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.