如何将简单的查询字符串jQuery脚本添加到WordPress

时间:2015-05-18 22:27:16

标签: javascript php jquery wordpress

我正在尝试添加通过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>

我对jsfunctions.php任何帮助或指导非常感谢我出错的地方感到茫然。

2 个答案:

答案 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中得到一些时间错误。