2017-01-23 31 views
0

私のコードで間違っていることを教えてもらえますか?get_field ACFプラグインが動作していないwhileループwhileループ

ループが機能していません。

これを行うと、ページ全体が空白になります。

function filter_reports() { 
    global $customer_account; 
    $args = array(
    'post_type' => 'ebooks', 
    'tax_query' => array(
     'relation' => 'AND', 
     array(
     'taxonomy' => 'customer', 
     'field' => 'term_id', 
     'terms' => $customer_account, 
     ), 
     array(
     'taxonomy' => 'disease', 
     'field' => 'term_id', 
     'terms' => $_POST['options'], 
     ) 
    ), 
    ); 

$the_query = new WP_Query($args); 
$results = array(); 

    if ($the_query->have_posts()) { 
    while ($the_query->have_posts()) { 
    $id = get_the_ID(); 
     array_push($results, array(
     'id' => $id, 
     'title' => get_field('title', $id), 
     'chair' => get_field('e-chair', $id), 
    )); 
      } 
    } 

    echo json_encode($results); 
    die; 

} 
    add_action('wp_ajax_filter_reports', 'filter_reports'); 
    add_action('wp_ajax_nopriv_filter_reports', 'filter_reports'); 

ACFプラグインで作成したカスタムフィールドを、whileループでループさせたいと思っています。 しかし、全体が動作していません。

私は本当に誰かがこれで私を助けることを願っています。

+0

無限のwhileループを書いたと思うでしょうか(WPの専門家に言わないでください) – RiggsFolly

+0

どうすればいいですか?私は立ち往生している。 – Dionoh

+0

結果セットに何かがあるかどうかを尋ねるだけではなく、実際に結果セットを消費しようとするwhileループの呼び出しを使用してください。 – RiggsFolly

答えて

2

あなたは the_post()でwhileループ内で設定する必要があり、ループ内のポスト インデックスを、反復していなかったので、ループが動作していない間。

だからあなたのコードは次のようになります。

$the_query = new WP_Query($args); 
$results = array(); 
while ($the_query->have_posts()) : $the_query->the_post(); 
    $id = get_the_ID(); 
    array_push($results, array(
     'id' => $id, 
     'title' => get_field('title', $id), 
     'chair' => get_field('e-chair', $id), 
    )); 
endwhile; 
wp_reset_postdata(); 

代替方法:

$the_query = new WP_Query($args); 
$results = array(); 
if (!empty($the_query->posts)) 
{ 
    foreach ($the_query->posts as $post) 
    { 
     $id = $post->ID; 
     array_push($results, array(
      'id' => $id, 
      'title' => get_field('title', $id), 
      'chair' => get_field('e-chair', $id), 
     )); 
    } 
} 
wp_reset_postdata(); 

この情報がお役に立てば幸い!

+0

これは役に立ちましたが、まだループしていませんでしたので、私はこれについて別の質問をします – Dionoh

関連する問題