我在前端写了一个ajax调用。 我在functions.php中写了服务器端
function updateCont(){
global $wpdb;
$post_id = $_POST['post_id'];
$key = $_POST['key'];
$value = $_POST['value'];
update_post_meta($post_id, $key, $value);
echo $value;
die();
}
add_action('wp_ajax_updateCont', 'updateCont');
add_action('wp_ajax_nopriv_updateCont', 'updateCont');
我的jquery如下
jQuery.ajax({
type:"POST",
url: "<?php echo admin_url('admin-ajax.php'); ?>",
data: {"post_id":<?php echo get_the_ID();?>, "key":"top_left_content", "value":"new content"},
success:function(data){
console.log(data);// is 0
}
});
但是,从ajax调用返回的数据始终为“0” 当我搜索它时,人们说我的功能没有加载到wordpress中。我不明白该怎么做。
答案 0 :(得分:0)
worpress hook需要一个action变量,函数名传递给php Try:
jQuery.ajax({
type: "POST",
url: "<?php echo admin_url('admin-ajax.php'); ?>",
data: {
action: 'updateCont',
"post_id": <?php echo get_the_ID();?>,
"key": "top_left_content",
"value": "new content"
},
success: function (data) {
console.log(data); // is new content
}
});
答案 1 :(得分:0)
您的ajax数据缺少"action": "updateCont"
。 action指定您要定位的WP ajax操作。