我正在尝试添加通过WordPress中的查询字符串动态填充字段的功能。我创建了dm_email.js
,其中包含以下内容:
jQuery(function( $ ){
//grab the entire query string
var query = document.location.search.replace('?', '');
//extract each field/value pair
query = query.split('&');
//run through each pair
for (var i = 0; i < query.length; i++) {
//split up the field/value pair into an array
var field = query[i].split("=");
//target the field and assign its value
$("input[name='" + field[0] + "'], select[name='" + field[0] + "']").val(field[1]);
}
});
并将其放在mytheme/js/dm_email.js
在我functions.php
我添加以下内容:
add_action( 'wp_enqueue_scripts', 'dm_query_string' );
function dm_query_string() {
wp_enqueue_script(
'dm_query',
get_template_directory_uri() . '/js/dm_email.js',
array('jquery')
);
}
但预期的功能仍然失败。如果我将以下内容添加到wp_head()
我得到了预期的功能,但当然我也遇到了很多其他脚本/插件的问题:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript">
$(function () {
//grab the entire query string
var query = document.location.search.replace('?', '');
//extract each field/value pair
query = query.split('&');
//run through each pair
for (var i = 0; i < query.length; i++) {
//split up the field/value pair into an array
var field = query[i].split("=");
//target the field and assign its value
$("input[name='" + field[0] + "'], select[name='" + field[0] + "']").val(field[1]);
}
});
</script>
我对js
或functions.php
任何帮助或指导非常感谢我出错的地方感到茫然。
答案 0 :(得分:0)
尝试将脚本放入页脚而不是头部。您可以执行以下操作:
首先要确保你排队 jQuery 。
functions.php中的变化:
wp_enqueue_script(
'dm_query',
get_template_directory_uri() . '/js/dm_email.js',
array('jquery'),
'1.0.0',
true
);
你的js中的变化:
(function($){ /* Your Code */ })(jQuery);
答案 1 :(得分:0)
在 function.php 文件中添加此代码。
function AddJs(){
wp_register_script('dm_query',get_template_directory_uri() . '/js/dm_email.js');
wp_enqueue_script('dm_query',get_template_directory_uri() . '/js/dm_email.js');
}
add_action( 'init', 'AddJs' );
注意:在dm_email.js文件中将 $ 替换为 jQuery 。 $在wordpress中得到一些时间错误。