เวลาเราออกแบบธีมหรือทำธีมใหม่ สิ่งที่จะต้องใช้แน่ๆ เลยก็คือ javascript
เอามาทำ slide บ้างล่ะ โค้ดปฎิทินบ้างล่ะ โค้ดโฆษณาบ้างล่ะ ฯลฯ แปลว่าอีกเยอะ
การใส่ javascript เข้าไปตรงๆในไฟล์ header.php นั้นไม่ใช่สิ่งที่ถูกต้อง ถึงแม้ว่ามันจะใช้ได้ก็ตาม
โดยวิธีที่ถูกต้องคือ เขียนโค้ดใส่มันเข้าไปในโฟล์ function.php ที่เก็บอยู่ในโฟลเดอร์ธีมปัจจุบันที่ใช้อยู่
โค้ดแบบนี้ ใส่เข้าไปตรงไหนก็ได้ในไฟล์ function.php
<?php function my_javascript() { wp_enqueue_script( 'myjavascript', get_template_directory_uri() . '/js/my_javascript.js' ); } add_action('wp_enqueue_scripts', 'my_javascript'); ?>
คำสั่ง add_action เป็นการบอกเวิร์ดเพรสว่า ตอนเขาจะอินคลูดจาวาสคริปต์เข้ามาในเพจ ให้ทำฟังก์ชั่นเราด้วย
add_action('wp_enqueue_scripts', 'my_javascript');
ทีนี้ในฟังก์ชั่นเราก็บอกว่า ให้เอาสคริปต์ผมที่ผมเก็บไว้ที่ โฟลเดอร์ธีมปัจจุบัน/js/my_javascript.js เข้าไปด้วย
wp_enqueue_script( 'myjavascript', get_template_directory_uri() . '/js/my_javascript.js' );
เท่านั้นแหละ ก็เป็นวิธีที่ถูกต้องแล้ว
ทีนี้ถ้ามีคำถามว่า แล้วทำไมการใส่จาวาสคริปต์เข้าไปตรงๆในธีม มันไม่ดี
ก็เพราะว่า ต้องเข้าใจว่าไม่ได้มีเพียงแต่เราเท่านั้นที่เป็นคนแอดจาวาสคริปต์เข้าไปใน หน้าเพจ แต่พวกปลักอินทั้งหลายที่เราติดตั้งไว้ บางตัวมันก็ทำ ซึ่งมันอาจจะเป็นไปได้ว่า มันจะมีการแอดจาวาสคริปต์เข้าไปซ้ำกัน แล้วเกิดชนกัน
สมมติง่ายๆว่าเรา แอด jquery เข้าไป ตรงๆเลยในธีม ทีนี้ปลักอิน litebox มันก็ต้องการใช้ jQuery มันก็ใส่เข้าไป ของเรากับของมันคนละเวอร์ชั่นกัน ก็ตีกัน สคริปต์เราก็อาจจะใช้งานไม่ได้
ถามต่อ แล้วคำสั่ง wp_enqueue_script มันช่วยแก้ปัญหาอย่างไร
ก็เพราะว่า เวิร์ดเพรสมันจะเป็นคนคอยตรวจสอบว่ามีการซ้ำกันของจาวาสคริปต์หรือเปล่า ถ้าซ้ำมันก็เอาแค่อันเดียว มันก็ไม่ซ้ำละ
เวิร์ดเพรสมันเอาไปเข้าคิว เข้าคิว เข้าคิว … อ้าวเฮ้ย มึงมีแล้ว ไม่ต้องมา ออกไป
ที่มา:
http://www.select2web.com/wordpress/wp-enqueue-script-javascript.html