2017-08-30 177 views
1

我想從Wordpress的wp_users表(通過Ajax請求)讀取,並在頁面中查看它。我需要你的幫助,讓我知道我通過使用Ajax成功打印根郵件地址所犯的錯誤。儘管Ajax調用成功,Wordpress Ajax總是返回0

我的JavaScript的AJAX調用是:

function ajaxTest() 
     { 
      // Creating the URL that Ajax must refer to. 
      var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>"; 

      // Do Ajax call. 
      jQuery.ajax({ 
       url: ajaxurl, 
       type: "POST", 
       data: { action: "wp_ajax_tester" }, 
       complete: function(xhr, status){ 
        console.log("Request completion status: " + status); 
       }, 
       success: function (response){ 
        console.log("result: " + response); 
       }, 
       error: function(errorThrown){ 
        console.log("error: " + errorThrown); 
       } 
      }); 
     } 

而在functions.php我已經創建了下面的代碼:我想打印出來的根電子郵件地址

function app_tester() 
{ 
    global $wpdb; 
    $sql = "SELECT user_email FROM wp_users WHERE user='root'"; 
    $results = $wpdb->get_results($sql, OBJECT); 
    echo json_encode($results;); 
    wp_die(); 
} 
add_action('wp_ajax_tester', 'app_tester'); 
add_action('wp_ajax_nopriv_tester', 'app_tester'); 

,但這是印在瀏覽器的控制檯中:

result: 0 
Request completion status: Successful 

我是usi NG的WordPress自己的jQuery通過把下面的一行中的文件頭部分:

<?php wp_enqueue_script("jquery"); ?> 
<?php wp_head(); ?> 
+1

你有沒有運行該查詢在你的數據庫直接確保它實際返回一些結果? –

+0

是的,先生,結果沒有'user'字段可用。只是最小的錯誤,它毀了我的一天。該字段被稱爲'user_login',我想我需要一些負面的觀點。非常感謝您給我提供解決方案的提示。 – Tower

回答

1

這裏是documentation阿賈克斯,請從動作中刪除wp_ajax_

示例代碼

function ajaxTest() 
    { 
     // Creating the URL that Ajax must refer to. 
     var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>"; 

     // Do Ajax call. 
     jQuery.ajax({ 
      url: ajaxurl, 
      type: "POST", 
      data: { action: "tester" }, 
      complete: function(xhr, status){ 
       console.log("Request completion status: " + status); 
      }, 
      success: function (response){ 
       console.log("result: " + response); 
      }, 
      error: function(errorThrown){ 
       console.log("error: " + errorThrown); 
      } 
     }); 
    }