วิธีที่ดีกว่าที่ฉันพบคือใช้ wp_localize_script()
ตามที่บอกไว้ @ @
โดยปกติฉันตัดสินใจใช้จาวาสคริปต์ในบรรทัดเพราะฉันต้องการให้ตัวแปร PHP บางอย่างแก่สคริปต์ของฉัน สิ่งนี้สามารถแก้ไขได้ด้วยwp_localize_script()
นี้สามารถแก้ไขได้ด้วยฉันจะให้ตัวอย่าง:
คุณมีอาร์เรย์ที่$aFoo
มีตัวเลือกบางตัวและจำเป็นต้องส่งไปยังสคริปต์
$aFoo = array( 'option1' => $option1Value, 'option2' => $option2Value );
ใช้สคริปต์ในบรรทัด:
<script>
var oFoo = {};
oFoo.option1 = <?php echo $aFoo['option1'] ?>;
oFoo.option2 = <?php echo $aFoo['option2'] ?>;
//do some stuff with oFoo
</script>
การใช้wp_localize_script()
:
wp_register_script( 'script_name', 'pathToScript/script.js', array( 'jquery' )); //if jQuery is not needed just remove the last argument.
wp_localize_script( 'script_name', 'object_name', $aFoo ); //pass 'object_name' to script.js
wp_enqueue_script( 'script_name' );
จากนั้นpathToScript/script.js
จะเป็น:
var oFoo = {};
oFoo.option1 = object_name.option1;
oFoo.option2 = object_name.option2;
//do some stuff with oFoo (no PHP needed)
ด้วยวิธีนี้คุณไม่จำเป็นต้องใช้สคริปต์ในบรรทัดอีกต่อไป