Cách tốt hơn mà tôi tìm thấy là sử dụng wp_localize_script()
, như @ fouu đề xuất.
Thông thường, tôi quyết định sử dụng Javascript nội tuyến vì tôi cần cung cấp một số biến PHP cho tập lệnh của mình. Điều này có thể được giải quyết với wp_localize_script()
. Tôi sẽ cung cấp một ví dụ:
Bạn có một mảng $aFoo
với một số tùy chọn và cần chuyển nó vào một tập lệnh.
$aFoo = array( 'option1' => $option1Value, 'option2' => $option2Value );
Sử dụng tập lệnh nội tuyến:
<script>
var oFoo = {};
oFoo.option1 = <?php echo $aFoo['option1'] ?>;
oFoo.option2 = <?php echo $aFoo['option2'] ?>;
//do some stuff with oFoo
</script>
Sử dụng 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' );
Sau đó, pathToScript/script.js
sẽ là:
var oFoo = {};
oFoo.option1 = object_name.option1;
oFoo.option2 = object_name.option2;
//do some stuff with oFoo (no PHP needed)
Theo cách này, bạn không cần các tập lệnh nội tuyến nữa.