phpwordpress

Custom API Endpoint get data from category


im pretty stuck.. Im trying to get all post data from a specific category ID, using Wordpress REST API. But it dosen't output the content, only the ID & Title.. Cant see what I am doing wrong..

Heres the code:

/* Register Route  http://dev.mpblogg.se/wp-json/api/v1/feedposts/id */
add_action( 'rest_api_init', function () {
    register_rest_route( 'api/v1', '/feedposts/(?P<id>\d+)', array(
        'methods' => 'GET',
        'callback' => 'getAllPostsfromCategory',
    ));
});


/* Get all posts from the specific Caetgory */
function getAllPostsfromCategory( $data ) {
$secret = '2lpMh5EHaEiavhMONpWD';
$qs = explode('&', $_SERVER['QUERY_STRING'])[0];
$qs = explode('=', $qs)[1];
if($qs != $secret){
    return false;
}
$posts = get_posts( array(
    'category' => $data['id'],
));

$returnArray = array();

foreach($posts as $post) {
    array_push($returnArray, array(
        'id'    =>      $post->ID,
        'title'     =>      $post->post_title,
        'content'   =>      $post->post_content
    ));
}

// die();

if(empty($posts)){
    return null;
}
return $returnArray;
}

The JSON output looks like this:

enter image description here

After changing to array_push($returnArray,$post); it looks like this:

enter image description here


Solution

  • As usual the answer why it didnt work is so dumb. Im not using the the_content.. Im using a custom field from ACF called post_excerpt. So I just added:

    'excerpt'   =>  get_field('post_excerpt', $post->ID),
    

    Now it works.. Sorry all, but thank's for all the help.