children()->listed()->sortBy('published', 'desc'); $mapItem = function ($item) { return [ 'title' => $item->title()->value(), 'slug' => $item->slug(), 'published' => $item->published()->toDate('d/m/Y'), 'intro' => $item->intro()->value(), 'cover' => $item->cover()->toFile()?->url(), ]; }; $singleSlug = $items->count() === 1 ? $items->first()->slug() : null; $specificData = [ 'intro' => $page->intro()->value(), 'items' => $items->map($mapItem)->values(), 'singleSlug' => $singleSlug, ]; $pageData = array_merge($genericData, $specificData); header('Content-Type: application/json'); echo json_encode($pageData);