在wordpress,未定义的变量中进行ajax调用

时间:2016-09-18 22:28:57

标签: ajax wordpress

我试着按照本指南在模态弹出窗口中打开Wordpress帖子:https://premium.wpmudev.org/blog/load-posts-ajax/

然而,当我尝试时,我得到一个错误说:未捕获的ReferenceError:modalpost未定义

到目前为止,我的函数文件中包含此代码:

wp_localize_script( 'modal-post', 'modalpost', array(
    'ajaxurl' => admin_url( 'modal-post.php' )
));

这段代码在我的js文件中:

(function($) {
$(document).on( 'click', '.itemtoshow', function( event ) {
event.preventDefault();
$.ajax({
    url: modalpost.ajaxurl,
    type: 'post',
    data: {
        action: 'modal-post'
    },
    success: function( result ) {
        alert( result );
    }
})
});
})(jQuery);

任何想法我做错了什么?

非常感谢,

斯科特

1 个答案:

答案 0 :(得分:2)

您已在代码中进行了一些更改,例如

wp_localize_script( 'modal_post', 'modalpost', array(
'ajaxurl' => admin_url( 'modal-post.php' )
));

wp_localize_script( 'modal-post', 'modalpost', array(
 'ajaxurl' => admin_url( 'admin-ajax.php' )
));

然后在你的jQuery中

(function($) {
  $(document).on( 'click', '.itemtoshow', function( event ) {
    event.preventDefault();
    $.ajax({
      url: modalpost.ajaxurl,
      type: 'post',
      data: {
        //action: 'modal-post' change function name here
        action: 'modal_post'
      },
     success: function( result ) {
     alert( result );
   }
 })
});
})(jQuery);

现在您的插件或functions.php文件中的代码响应函数,如

// Add hooks for handle ajax request
add_action( 'wp_ajax_nopriv_modal_post', 'model_post' );
add_action( 'wp_ajax_ajax_modal_post', 'model_post' );

function model_post(){
  // Your modal code goes here
  // echo your modal code and then exit / die
  die();
}