wordpress myAjax未定义

时间:2016-11-30 05:45:18

标签: php jquery ajax wordpress

我正在使用子主题,并为admin ajax js

添加以下代码
function wpb_adding_scripts() {
/*  echo "string". get_stylesheet_directory_uri().'/css/jquery.bxslider.css';
    exit();*/
    wp_register_script('flexslider', get_stylesheet_directory_uri() . '/js/jquery.flexisel.js', array('jquery'),'1.1', true);
    wp_enqueue_script('flexslider');
    wp_enqueue_script('bxslider', get_stylesheet_directory_uri() . '/js/jquery.bxslider.min.js', array(),true, true);
    wp_enqueue_script('bxslider');

    wp_enqueue_script('custom', get_stylesheet_directory_uri() . '/js/custom.js', array(),true, true);
    wp_enqueue_script('custom');
    //wp_localize_script('admin_script', 'ajaxurl', admin_url( 'admin-ajax.php' ) );

    wp_localize_script('admin_script', 'myAjax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' )));
    wp_enqueue_script( 'jquery' );
    wp_enqueue_script('admin_script');

} 

add_action( 'wp_enqueue_scripts', 'wpb_adding_scripts', 999 );

但它给了我错误,如

ReferenceError: myAjax is not defined
    url : myAjax.ajaxurl,

我在自定义js中使用了myAjax声明..

jQuery('#load_more_posts').on('click',function(){
    var lng =jQuery(".post_item").length;

    jQuery.ajax({
      type : "post",
      url : myAjax.ajaxurl,
       data : {action: "load_more_posts_home",count : lng},
 }).done(function(response){
      var posts = JSON.parse(response);

      for( var i = 0; i < posts.length; i++ )
      {
        if( posts[i] == "0" )
          jQuery("#load_more_posts").fadeOut();
        else
          jQuery("#load_more_posts").before(posts[i]);
      }

    });
});

所以我怎么能在我的wordpress儿童主题中解决这个问题。

2 个答案:

答案 0 :(得分:5)

试试这个:

wp_enqueue_script('custom'); //Name of the script. Should be unique.here is 'custom'
wp_localize_script('custom', 'myAjax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' )));  // remove admin_script and add unique javascript file.

上面的代码在脚本“custom”中对对象进行了本地化:'myAjax'。并且您可以通过在自定义脚本文件中添加以下代码来访问属性“ajax_url”。

custom.js

中的

alert(myAjax.ajaxurl);

答案 1 :(得分:0)

而不是像public static void main(String[] args) { List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9,1, 2, 3, 1); int find = 1; System.out.println(list.stream().filter(x->x==find).toArray().length); } 那样使用admin_script

ajax-script

否则,您可以在定义ajax脚本本地化函数之前添加wp_localize_script( 'ajax-script', 'myAjax',array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );