2016-10-24 15 views
0

をそこに表示したいとき私は自分のデータを表示したい。私はpostmetaその作業をせずに自分のデータを表示しようとするが、私はpostmetaを改善しようとすると、私は空白の応答を得るとき私はpostmeta Wordpress

$command = $_GET['command']; 
switch ($command) { 
    case 'list_product': 

     $loop = new WP_Query( 
       array(
         'post_type' => 'product' 
         // 'showposts' => 4, 
         // 'meta_key'  => '_sale_price', 
         // 'meta_value' => '0', 
         // 'meta_compare' => '>=', 
        ) 
       ); 
if($loop->have_posts()) : 

    $data = array("api_status" => 1, "api_message" => "success"); 
    while ($loop->have_posts()) : $loop->the_post(); 

      $data[] = array("id" => get_the_ID(), 
      "post_name" => get_the_title(), 
      "post_meta" => get_post_meta(get_the_ID()); 

    endwhile; 


    echo json_encode($data); 
break; 
} 

誰かが私を助けなければならないものを私は私のコードに必要な改善、そう私のコード私は必要なもののように働くことができますか?

答えて

0

前に、あなたのif$data = ...を入れて、それに空の配列値のresultsキーを追加します。 endifの後ろにechoを入れてください。少しそれを綴る:あなたのwhile

は、$data['results'][] = ...


Editを使用してそのキーに結果を追加します。あなたの結果が空であれば何か間違っています。

switch ($_GET['command']) { 
    case 'list_product': 

     $loop = new WP_Query( 
      array(
       'post_type' => 'product', 
       // 'showposts' => 4, 
       // 'meta_key'  => '_sale_price', 
       // 'meta_value' => '0', 
       // 'meta_compare' => '>=', 
      ) 
     ); 
     $data = array(
      'api_status' => 1, 
      'api_message' => 'success', 
      'results' => array(), 
     ); 
     while ($loop->have_posts()) { 
      $loop->the_post(); 
      $data['results'][] = array(
       'id' => get_the_ID(), 
       'post_name' => get_the_title(), 
       'post_meta' => get_post_meta(get_the_ID()), 
      ); 
     } 
     echo json_encode($data); 
     break; 
} 
0

これを試してみてください:

$command = $_GET['command']; 
switch ($command) { 
    case 'list_product': 

     $loop = new WP_Query(
      array(
       'post_type' => 'product' 
// 'showposts' => 4, 
// 'meta_key'  => '_sale_price', 
// 'meta_value' => '0', 
// 'meta_compare' => '>=', 
      ) 
     ); 

     if($loop->have_posts()) { 

      $data = array("api_status" => 1, "api_message" => "success"); 
      while($loop->have_posts()) { 
       $loop->the_post(); 
       $data[] = array(
        "id" => get_the_ID(), 
        "post_name" => get_the_title(), 
        "post_meta" => get_post_meta(get_the_ID()) 
       ); 
      } 

      /** 
      $data[] = array(
       "id" => get_the_ID(), 
       "post_name" => get_the_title(), 
       "post_meta" => get_post_meta(get_the_ID()) 
      ); 
      */ 

     } 

     echo json_encode($data); 
     break; 
} 
+0

未定義のインデックスなしの結果を。 – Walf

+0

私はwordpressについて知らないけど、彼の声明では、 "endif"が見つからなかった。私の低い点のため、私は質問に直接コメントを追加することはできません。 OPは最初の場所でエラーデバッグを有効にする方法を理解する必要があります –

+0

私は自分の答えを更新しました..私は本当にそれらのカスタム定義されたワードプレスのメソッドから期待するものは分からないので、$ data []構文を修正しようとしました –

-1

コードの下で試してみてください:

$loop = new WP_Query(
    array(
     'post_type' => 'post' 
    ) 
); 

$data = array("api_status" => 1, "api_message" => "success"); 
if($loop->have_posts()) { 
while($loop->have_posts()) { 
    $loop->the_post(); 
    $data[] = array(
     "id" => get_the_ID(), 
     "post_name" => get_the_title(), 
     "post_meta" => get_post_meta(get_the_ID()) 
    ); 
} 
} 
echo json_encode($data); 
関連する問題