Wordpress ajax没有在functions.php中调用函数

时间:2015-12-02 11:51:25

标签: php jquery ajax wordpress

我在前端写了一个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中。我不明白该怎么做。

2 个答案:

答案 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操作。