2017-08-30 20 views
1

Wordpressのwp_usersテーブル(Ajaxリクエスト経由)から読み込み、そのページで表示しようとしています。 Ajaxを使用してルート電子メールアドレスを正常に印刷するために間違っていたことを教えてください。Wordpress Ajaxは、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ですファイルのheadセクションで以下の行を置くことによってWordpressの自身のjQuery ngを:ここで

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

をwp_ajax_を削除してくださいあなたは、そのクエリを実行しました実際にいくつかの結果が返ってくるかどうかを直接確認する –

+0

はい、それは利用可能な 'user'フィールドがないことが判明しました。ちょうど最小の間違いとそれはちょうど私の日を台無しにした。フィールドは 'user_login'と呼ばれ、私はここにいくつかの否定的な点が必要だと思います。解決策へのヒントをいただきありがとうございます。 – Tower

答えて

1

は、Ajaxのためのdocumentationで、アクションから

例コード

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); 
      } 
     }); 
    } 
関連する問題