2015-12-02 123 views
0

我在前端写了一个ajax调用。 我的functions.php写的服务器端Wordpress Ajax不调用函数function.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

您缺少ajax数据中的“action”:“updateCont”。 action指定了你所针对的WP ajax动作。我假设你有一个PHP可用的上下文中的JQuery代码。即在一个PHP文件中,否则php函数将无法工作。 – Mark

+0

ajax代码在一个php文件中。我写在page.php文件中。 Jquery部分执行得很好。但答复始终为0 – prasadmsvs

+0

您是否尝试添加操作? – Mark

回答

0

你缺少从阿贾克斯数据"action": "updateCont"。 action指定了你所针对的WP ajax动作。

0

的worpress钩需要一个动作变量,传递到PHP尝试函数名称:

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

添加的操作:数据中的“updateCont”,它工作。谢谢。 – prasadmsvs