我目前正在教自己如何在Wordpress中使用AJAX。要获取AJAX-admin URL,我使用WordPress提供的wp_localize_script函数(https://codex.wordpress.org/Function_Reference/wp_localize_script)将URL传递给我的Javascript文件。在我的JS文件中,我可以访问我“附加”到我的JS的数组。虽然这很好用,但我很难理解它背后的概念。
<?php
// Register the script
wp_register_script( 'some_handle', 'path/to/myscript.js' );
// Localize the script with new data
$translation_array = array(
'ajax_url' => admin_url( 'admin-ajax.php' )
);
wp_localize_script( 'some_handle', 'object_name', $translation_array );
// Enqueued script with localized data.
wp_enqueue_script( 'some_handle' );
然后可以在JS文件中访问数据,如此
<script>
// alerts 'Some string to translate'
alert( object_name.ajax_url);
</script>
我怎么可能在Javascript中访问我从未在Javascript文件中明确定义的数组?如何将PHP“附加”到我的Javascript中,而不是在文件中正式写出来?
我想有一个关于JS的基本概念,我还不明白,所以如果你能指出我的方向会很棒。
答案 0 :(得分:0)
好的,经过一些研究后我发现了 - 我只是看错了地方。数据实际上并没有写入任何特定的Javascript文件(或神奇地附加到一个)。
它只是作为一个数组打印在DOM <script>
标记内的DOM中,如下所示:
<script type="text/javascript">
/* <![CDATA[ */
var ajaxUrl = {"ajaxurl":"http://*******************/admin-ajax.php"};
/* ]]> */
</script>
从这里可以访问所有JS文件。