0

そこに自分のデータを表示したい。postmeta なしでデータを表示しようとすると動作しますが、postmeta で改善しようとすると空白の応答が返されます

$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;
}

コードに必要な改善を誰かに手伝ってもらい、コードが必要なように機能するようにしますか?

4

3 に答える 3

0

$data = ... を前に置き、空の配列値を持つキーをif追加します。resultsあなたのecho後にあなたを入れてくださいendif

whileで、結果をそのキーに追加します$data['results'][] = ...


編集:少し綴ってください。結果が空の場合は、他の何かが間違っています。

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;
}
于 2016-10-24T05:27:59.677 に答える
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;
}
于 2016-10-24T05:28:06.010 に答える
-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);
于 2016-10-24T08:19:18.840 に答える