2015-12-02 119 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