我正在使用Wordpress + Ajax,甚至使用正确的钩子我得到了错误" ReferenceError:找不到变量:ajaxobject "。当然,我的ajaxurl存在一些问题,但我不明白,因为它对我来说似乎做得很好。你能救我吗?
在我的functions.php中
add_action( 'wp_enqueue_scripts', 'add_frontend_ajax_javascript_file', 11, 2 );
function add_frontend_ajax_javascript_file()
{
wp_localize_script( 'ajax-script', 'ajaxobject', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) );
}
我的jQuery / AJAX文件
var itemtitle = $('#itemtitle').val();
var itemdescription = $('#itemdescription').val();
jQuery.ajax({
method: 'post',
url : ajaxobject.ajaxurl, //Why???
dataType: "json",
data: {
'action':'update_portfolio_function',
'pid' : id,
'itemtitle' : itemtitle,
'itemdescription' : itemdescription,
},
success:function(data) {
// This outputs the result of the ajax request
alert("Coooool");
},
error: function(errorThrown){
console.log(errorThrown);
}
});
当然update_portfolio_function
看起来像
add_action('wp_ajax_update_portfolio', 'update_portfolio_function' );
function update_portfolio_function(){
$id = $_REQUEST['pid'];
$title = $_REQUEST['itemtitle'];
$description = $_REQUEST['itemdescription'];
$attachment = array(
'ID' => $id,
'post_title' => $title,
'post_content' => $description
);
// now update main post body
wp_update_post( $attachment );
die();
}
我应该使用init
还是no_priv
?
答案 0 :(得分:1)
你只需要使用ajaxurl而不是ajaxobject.ajaxurl
如下所示
jQuery.ajax({
method: 'post',
url : ajaxurl,
dataType: "json",